Skip to content

Releases: wasmerio/wasmer

0.2.1

28 Feb 01:38
Compare
Choose a tag to compare

This version fixes some small issues, and update the hashing algorithm for caching to be crypto-secure.

Changelog

  • Updated the hashing algorithm to be crypto (blake2b) #214
  • Fix Emscripten read/write casting #222
  • [Windows] Commit virtual memory before copying #212

0.2.0

25 Feb 22:01
Compare
Choose a tag to compare

The version 0.2.0 moves the WebAssembly wasmer runtime forward making it more stable, with a more mature API and preparing the software to be ready in production environments.
It also accelerates the startup time when running a WebAssembly module by an order of magnitude.

This version also ships with experimental Windows support (all WebAssembly spectests pass, emscripting bindings are on the works).

Changelog

  • Completely refactored our codebase, moving the runtime, Cranelift backend and emscripten into it's own isolated libs #80
  • Added Cache #134 #198 #200, so WebAssembly compiled modules can be loaded much faster (100x speedup on compile time)
  • Added integration tests #109 #91
  • Improved support for Windows #51 #94 #143 #144 #138 #175
  • Improved function signature checks #155
  • Improved imports API #120 #130
  • Naive short circuiting implementation for user panics and results #167
  • Improved traps support #103
  • Use parallel compilation for cranelift backend #209
  • Improved debug #61 #67 #129 #204
  • Added benchmark runner #201

Breaking changes

The breaking changes affect mainly to other libraries that were depending in any of the crates for embedding Wasmer in their systems.
You can check an example PR with all the changes included here: https://github.com/wasmerio/wasmer-rust-example/pull/5/files

Summary:

  • Now the imported functions take Ctx as first argument instead of the last one #171
// Previous (0.1.x)
fn print_num(n: i32, ctx: &mut vm::Ctx) {
    println!("print_num({})", n);
}

// Now (>= 0.2.0)
fn print_num(ctx: &mut vm::Ctx, n: i32) {
    println!("print_num({})", n);
}
  • The imported function in imports! should use now the func! macro.
// Previous (0.1.x)
let import_object = imports! {
    "env" => {
        "print_num" => print_num<[i32] -> []>,
    },
};

// Now (>= 0.2.0)
let import_object = imports! {
    "env" => {
        // The func! macro will automatically detect the signature
        "print_num" => func!(print_num),
    },
};
  • Access to memory slices is now safe
// Previous (0.1.x)
let memory = ctx.memory(0);
let str_slice = &memory[ptr as usize..(ptr + len) as usize];


// Now (>= 0.2.0)
let memory = ctx.memory(0);
let str_slice: Vec<_> = memory.view()[ptr as usize..(ptr + len) as usize].iter().map(|cell| cell.get()).collect();

Other

0.1.4

22 Dec 06:48
db24e8a
Compare
Choose a tag to compare
Merge pull request #52 from wasmerio/fix/emscripten-env

Fix support for env vars (put, set, unset)

0.1.3

19 Dec 18:12
04378d5
Compare
Choose a tag to compare
Merge pull request #53 from wasmerio/feature/run-lua-wasm

Running Lua

0.1.2

07 Dec 04:44
Compare
Choose a tag to compare

Changelog

First version capable of running nginx

0.1.1

06 Dec 00:21
Compare
Choose a tag to compare

Changelog

  • Implemented almost all the syscalls required to execute Nginx
  • Added self-update command
  • Improved installer
  • Recover properly from stack overflows

0.1.0

23 Nov 15:37
3dc9119
Compare
Choose a tag to compare

First working version of wasmer.