🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten
MIT License
Bot releases are visible (Hide)
Published by syrusakbary over 5 years ago
This version of wasmer improves significantly the Emscripten backend making it compatible with the latest Emscripten LLVM release. It also improves the dependency graph between modules and improves the caching strategies.
--cache-key
) to use prehashed key into the compiled wasm cache and change compiler backend-specific caching to use directoriesPublished by syrusakbary over 5 years ago
This version improves significantly the Emscripten integration, making it possible to handle networking and filesystem much better. Wasmer can now run Python! 🎉
This version also ships with the wapm-cli with changes that improve filesystem usage, and introducing wasm interfaces to statically analyze modules before uploading them to wapm.
WasmPtr
Published by syrusakbary over 5 years ago
Published by syrusakbary over 5 years ago
This version of Wasmer ships with a much more stable version of WASI, supporting environment variables and directory mapping. It also ships with wapm
0.3.0 that includes support for package signing and contracts.
Apart of the fixes we improved the Emscripten integration, that now is able to run python
and openssl
.
wasmer_module_instantiate
has better error messages in the runtime C API@rpath
wasmer_instantiate
returns better error messages in the runtime C API--features trace
) for more verbose debug statements--mapdir=src:dest
flag to rename host directories in the guest contextPublished by syrusakbary over 5 years ago
This version of Wasmer ships with multiple WASI improvements, fixes on the C-API integration and the first iteration of our refactor of different backends (singlepass and LLVM).
This version also ships with a kernel loader that is able to run WebAssembly on the kernel, more info here.
wasmer_instance_call
and wasmer_export_func_*_arity
functions in the runtime C API.wasmer_last_error_message
in the runtime C APIPublished by syrusakbary over 5 years ago
Published by syrusakbary over 5 years ago
Wasmer now ships with wapm 🎉.
WAPM is a Package Manager for WebAssembly that will improve your experience for installing, using and publishing WebAssembly modules. Here's a video showcasing it: https://www.youtube.com/watch?v=qDRcHIBFu0c
Apart of shipping with wapm, the stability of the runtime has been improved significantly and support for WASI is more mature.
--backend
flag to only suggest currently enabled backendsUserTrapper
trait to fix #365.Cargo.toml
s for publishingPublished by syrusakbary over 5 years ago
Wasmer now supports WASI 🎉.
The emscripten implementation has improved vastly, and now Wasmer can run PHP, SQLite and Lua (check them on the examples dir on this repo)
The wasmer
CLI now ships with three different backends: Singlepass (fast compilation), Cranelift (default) and LLVM (fast runtime). You can try it with wasmer run --backend=singlepass ...
We also improved the APIs and shipped tons of bug fixes and improvements.
--backend=singlepass
when running Wasmer) #276 #288 #344wasmer_export_to_memory
function #296wasmer_module_serialize
and wasmer_module_deserialize
#271vm::Ctx.data
#261Published by syrusakbary over 5 years ago
This version fixes some small issues, and update the hashing algorithm for caching to be crypto-secure.
Published by syrusakbary over 5 years ago
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).
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:
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);
}
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),
},
};
// 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();
wasmer-emscripten
0.2.0 crate
wasmer-runtime
0.2.0 crate
wasmer-clif-backend
0.2.0 crate
Published by syrusakbary almost 6 years ago
Published by syrusakbary almost 6 years ago
Published by syrusakbary almost 6 years ago
First working version of wasmer.