wasmer

πŸš€ The leading Wasm Runtime supporting WASIX, WASI and Emscripten

MIT License

Downloads
39.7M
Stars
18.2K
Committers
195

Bot releases are visible (Hide)

wasmer - 0.17.0

Published by syrusakbary over 4 years ago

This version of Wasmer ships with many internal improvements, some updated APIs, and some bug fixes.

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:

  • πŸ… @igrep for getting Wasmer running on Android and their continuing work in that area
  • πŸ… @michaelvoronov for work on improving the APIs of Wasmer
  • πŸ… @oconnor663 for helping with our BLAKE3 integrations
  • πŸ… @Jake-Shadle for fixing a bug related to cross-compiling to Windows
  • πŸ… @MikaelUrankar for further improvements on FreeBSD

Changes

  • #1401 - RuntimeErrors are now much more explicit about how they failed allowing better insight into the internal workings of Wasmer when things go wrong.
  • #1320 - Allow multiple custom sections with the same name as per the Wasm spec
  • #1313 - New APIs for interfacing with Wasmer (currently experimental, expect breakage in this new crate)
  • #1303 - NaN canonicalization for the Singlepass backend
  • #1292 - Experimental support for android

See the changelog for all the details.

wasmer - 0.16.2

Published by wasmerbot over 4 years ago

We had a bug in the Wasm pointer implementation that was not caught by our tests. Sorry for the inconvenience!

Install the latest version of Wasmer with:

curl https://get.wasmer.io -sSfL | sh

Changelog

  • #1294 Fix bug related to system calls in WASI that rely on reading from WasmPtrs as arrays of length 0. WasmPtr will now succeed on length 0 arrays again.
wasmer - 0.16.1

Published by wasmerbot over 4 years ago

This release fixes a small bug in the install script that prevented wax from running.

wasmer - 0.16.0

Published by wasmerbot over 4 years ago

This version of Wasmer ships some fixes into the WASI memory, a better Wasmer integration in Windows and a completely new tool for WAPM: wax. Read more here.

Changelog

  • #1286 Updated Windows Wasmer icons. Add wax
  • #1284 Implement string and memory instructions in wasmer-interface-types
  • #1272 Fix off-by-one error bug when accessing memory with a WasmPtr that contains the last valid byte of memory. Also changes the behavior of WasmPtr<T, Array> with a length of 0 and WasmPtr<T> where std::mem::size_of::<T>() is 0 to always return None
wasmer - 0.15.0

Published by syrusakbary over 4 years ago

This version of Wasmer ships Polymorphic functions support, along with a new debugger for WebAssembly modules and some other small improvements πŸŽ‰

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:

  • πŸ… @MikaelUrankar for his ongoing work on Wasmer for FreeBSD

Changelog

  • #1263 Changed the behavior of some WASI syscalls to now handle preopened directories more properly. Changed default --debug logging to only show Wasmer-related messages.
  • #1217 Polymorphic host functions based on dynamic trampoline generation.
  • #1252 Allow / in wasi --mapdir wasm path.
  • #1212 Add support for GDB JIT debugging:
    • Add --generate-debug-info and -g flags to wasmer run to generate debug information during compilation. The debug info is passed via the GDB JIT interface to a debugger to allow source-level debugging of Wasm files. Currently only available on clif-backend.
    • Break public middleware APIs: there is now a source_loc parameter that should be passed through if applicable.
    • Break compiler trait methods such as feed_local, feed_event as well as ModuleCodeGenerator::finalize.
wasmer - 0.14.1

Published by syrusakbary over 4 years ago

This version of Wasmer is a small release over 0.14.0 that ships with the pre-built Linux binaries compiled on Ubuntu 16.04, using an earlier version of GLIBC (this behavior is the same as releases prior to 0.14.0). The release also includes other minor improvements such as documentation corrections.

wasmer - 0.14.0

Published by wasmerbot over 4 years ago

This version of Wasmer ships multiple improvements for WASI, a new hashing algorithm for cache using blake3 and various fixes and improvements making Wasmer more resilient and fast.
We are also shipping a new structure for the Wasmer C-API in the releases... try it out!

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:

  • πŸ… @MikaelUrankar for his excellent work on making Wasmer available on FreeBSD
  • πŸ… @repi for adding missing licenses

Changelog

  • #1233 Improved Wasmer C API release artifacts.
  • #1228 Singlepass cleanup: Resolve several FIXMEs and remove protect_unix.
  • #1218 Enable Cranelift verifier in debug mode. Fix bug with table indices being the wrong type.
  • #1213 Fixed WASI fdstat to detect isatty properly.
  • #1192 Use ExceptionCode for error representation.
  • #1191 Fix singlepass miscompilation on Operator::CallIndirect.
  • #1180 Fix compilation for target x86_64-unknown-linux-musl.
  • #1170 Improve the WasiFs builder API with convenience methods for overriding stdin, stdout, and stderr as well as a new sub-builder for controlling the permissions and properties of preopened directories. Also breaks that implementations of WasiFile must be Send -- please file an issue if this change causes you any issues.
  • #1161 Require imported functions to be Send. This is a breaking change that fixes a soundness issue in the API.
  • #1140 Use blake3 as default hashing algorithm for caching.
  • #1129 Standard exception types for singlepass backend.
wasmer - 0.13.1

Published by wasmerbot almost 5 years ago

The 0.13.1 release is a very small update to 0.13.0 which includes some documentation improvements and a bug fix to the wapm command line tool.

wasmer - 0.13.0

Published by wasmerbot almost 5 years ago

This release of Wasmer is focused mostly on core technical improvements and ships with various bug fixes and improvements to wapm and Wasmer! Included in this release is the enable-experimental-io-devices which allows users to use some in-development, non-standard, IO-related features that we're working on before they get standardized.

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:
πŸ… @srenatus for adding a method to WasmPtr to safely read NUL-terminated strings from Wasm memory.

See the changelog for more information about this release.

wasmer - 0.12.0

Published by wasmerbot almost 5 years ago

πŸŽ… Santa came a bit early this year!

This version of Wasmer ships with ARM (Aarch64) support on the LLVM backend, improved APIs around WASI in the Rust and C APIs, caching support for the Singlepass backend, and many more miscellaneous improvements!

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:
πŸ… @ethanfrey for fixing linking of Singlepass in the C API
πŸ… @AdamSLevy for adding include guards in the C API for optional functions and types and work on improving middleware
πŸ… @YaronWittenstein for adding the deterministic-execution feature flag for enabling features relating to improved determinism in the generated code

Changelog

  • #1078 Increase the maximum number of parameters Func can take
  • #1062 Expose some Emscripten functions to the C API as opt-in features to runtime-c-api
  • #1056 Improved --invoke args parsing (supporting i32, i64, f32 and f32) in Wasmer CLI
  • #1050 Attach C & C++ headers to releases.
  • #1044 Enable AArch64 support in the LLVM backend.
  • #1030 Ability to generate ImportObject for a specific version WASI version with the C API.
  • #1028 Introduce strict/non-strict modes for get_wasi_version
  • #1029 Add the β€œfloating” WasiVersion::Latest version.
  • #1022 Add caching support for Singlepass backend.
wasmer - 0.11.0

Published by wasmerbot almost 5 years ago

This version of Wasmer ships with support to ARM (Aarch64) devices πŸŽ‰. We also improved the ergonomics of the Wasmer CLI, and now you can run wasm files directly without run (e.g. wasmer myfile.wasm).

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:

Changelog

  • #713 Add AArch64 support for singlepass.
  • #995 Detect when a global is read without being initialized (emit a proper error instead of panicking)
  • #996 Refactored spectests, emtests and wasitests to use default compiler logic
  • #992 Updates WAPM version to 0.4.1, fix arguments issue introduced in #990
  • #990 Default wasmer CLI to run. Wasmer will now attempt to parse unrecognized command line options as if they were applied to the run command: wasmer mywasm.wasm --dir=. now works!
  • #987 Fix runtime-c-api header files when compiled by gnuc.
  • #957 Change the meaning of wasmer_wasi::is_wasi_module to detect any type of WASI module, add support for new wasi snapshot_preview1
wasmer - 0.10.2

Published by syrusakbary almost 5 years ago

This version of Wasmer ships a fix on the C-API bug, a new feature that allows using function closures on imports and a unified version of Trampoline.

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:

  • πŸ… @kripken for reporting a issue in unaligned load/stores in non-atomic operations
  • πŸ… @xofyarg for adding cross-compilation to the LLVM backend

Changelog

0.10.2 - 2019-11-15

  • #968 Added --invoke option to the command
  • #964 Enable compilation for specific target
  • #971 In LLVM backend, use unaligned loads and stores for non-atomic accesses to wasmer memory.
  • #960 Fix runtime-c-api header files when compiled by clang.
  • #925 Host functions can be closures with a captured environment.
  • #917 Host functions (aka imported functions) may not have &mut vm::Ctx as first argument, i.e. the presence of the &mut vm::Ctx argument is optional.
  • #915 All backends share the same definition of Trampoline (defined in wasmer-runtime-core).
wasmer - 0.10.1

Published by syrusakbary almost 5 years ago

Minor update, fixes bug migrating wapm.lock file from version 3 to version 4 and adds preprocessor logic to the C API so that only valid functions are exposed.

wasmer - 0.10.0

Published by syrusakbary almost 5 years ago

This version of Wasmer ships with multiple speed improvements to the LLVM backend, the WASI ImportObject exposed in the C API, various bug fixes and improvements, and a new version of wapm with wapm add, wapm remove, and an improved wapm init subcommand.

πŸ† Contributors

We'd like to thank everyone that contributed into this release of Wasmer, with special thanks to:

  • πŸ… @newpavlov for improving the random usage in WASI
  • πŸ… @Maxgy for helping us a bit on the docs grammar :)

Changelog

For a complete list of notable changes, check out the CHANGELOG.

Some highlights are:

  • #939 Fix bug causing attempts to append to files with WASI to delete the contents of the file
  • #923 Fix memory leak in the C API caused by an incorrect cast in wasmer_trampoline_buffer_destroy
  • #921 In LLVM backend, annotate all memory accesses with TBAA metadata.
  • #883 Allow floating point operations to have arbitrary inputs, even including SNaNs.
  • #856 Expose methods in the runtime C API to get a WASI import object

To update run wasmer self-update. For installation instructions, wasmer.io

wasmer - 0.9.0

Published by MarkMcCaskey almost 5 years ago

This version of Wasmer ships with various improvements to the LLVM backend (1.5~2x faster runtime), updates the WASI API, and adds various bug fixes and improvements.

πŸ† Contributors

We'd like to thank everyone that contributed into Wasmer, with special thanks to:

  • πŸ… @alocquet for adding download links to the precompiled libraries in the C API README

Changelog

For a complete list of notable changes, check out the CHANGELOG.

Some highlights are:

  • #898- we disabled state tracking by default in our generated LLVM code leading to a major speed improvement for uses that don't need it. It can be reenabled with the --track-state flag. This
  • #897 - removes special casing of stdin, stdout, and stderr in WASI. This fixes issues like calling fd_close on these files. They may still be accessed from WasiFS with the stdout, stdout_mut, stdin, stdin_mut, stderr, and stderr_mut methods.
  • #863 - fixed edge cases in max and min on floating point numbers in LLVM

To update run wasmer self-update. For installation instructions, wasmer.io

wasmer - 0.8.0

Published by MarkMcCaskey about 5 years ago

This version of Wasmer ships with many bug fixes and improvements as well as some exciting new features such as atomic operations, host-to-guest callbacks, and Instance being Send.

πŸ† Contributors

We'd like to thank everyone that contributed into Wasmer, with special thanks to:

  • πŸ… @jdanford for improving and cleaning up our docs in markdown files

Changelog

For a complete list of notable changes, check out the CHANGELOG.

Here are some highlights:

  • #786 - implement atomic memory operations in the LLVM backend
  • #803 - Add a method to Ctx to invoke functions by TableIndex. See the callback example to see this in action!
  • #807 - Implement Send on Instance. This removes ImportObject::get_namespace, replacing it with the with_namespace and maybe_with_namespace methods.
  • #817 - add a feature matrix document for tracking features.
  • #820 - remove null pointer checks in hostcalls in WASI. Per the standard, it's valid to use address 0.
  • #835 - add parallel execution example
  • #839 - increase the official minimum supported Rust version to 1.37
  • #850 - add a new API for constructing WasiState objects (introduces a small breaking change in the type signatures of wasmer_wasi::generate_import_object and wasmer_wasi::state::WasiFs::new)

To update run wasmer self-update. For installation instructions, wasmer.io

wasmer - 0.7.0

Published by MarkMcCaskey about 5 years ago

This version of Wasmer ships with various improvements to the C-API and to our WASI implementation. It also improves the compilation speed of our Cranelift backend by 40% and includes multiple improvements to the LLVM backend.

πŸ† Contributors

We'd like to thank everyone that contributed into Wasmer, with special thanks to:

  • πŸ… @penberg for improving the compilation speed by 40%
  • πŸ… @YaronWittenstein for improving the C-API
  • πŸ… @pventuzelo for adding Fuzzing into Wasmer

Changelog

For a complete list of notable changes, check out the CHANGELOG.

  • #589 #590 #602 #616 #708 #756 Improvements to the C API
  • #608 #643 #650 #671 #726 #731 #732 #774 #776 Improvements to our WASI implementation and API when using WASI in embedded contexts
    • Our WASI implementation now implements all system calls
  • #618 #620 #674 #675 #677 #702 LLVM backend improvements
  • The wasmer-middleware-common crate on crates.io
  • Many bug fixes, optimizations, and stability improvements to our runtime, compilers, and emscripten implementation

To update run wasmer self-update. For installation instructions, wasmer.io

wasmer - 0.6.0

Published by syrusakbary about 5 years ago

The version 0.6.0 of Wasmer focus on stability and performance. We added support for SIMD in the LLVM backend, and the ability of running WebAssembly files with LLVM backend on Windows (including SIMD). We also shipped some fixes that improves stability and performance overall.

Changelog

  • #603 Update Wapm-cli, bump version numbers
  • #595 Add unstable public API for interfacing with the WASI file system in plugin-like usecases
  • #598 LLVM Backend is now supported in Windows
  • #599 Fix llvm backend failures in fat spec tests and simd_binaryen spec test.
  • #579 Fix bug in caching with LLVM and Singlepass backends.
    Add default-backend-singlepass, default-backend-llvm, and default-backend-cranelift features to wasmer-runtime
    to control the default_compiler() function (this is a breaking change). Add compiler_for_backend function in wasmer-runtime
  • #561 Call the data_finalizer field on the Ctx
  • #576 fix Drop of uninit Ctx
  • #542 Add SIMD support to Wasmer (LLVM backend only)
    • Updates LLVM to version 8.0
wasmer - 0.5.7

Published by syrusakbary about 5 years ago

Wasmer 0.5.7 ships with a complete refactor of the WASI filesystem and a newer version of wapm with improved speed and better developer experience for new updates.

Changelog

  • #575 Prepare for release; update wapm to 0.3.6
  • #555 WASI filesystem rewrite. Major improvements
    • adds virtual root showing all preopened directories
    • improved sandboxing and code-reuse
    • symlinks work in a lot more situations
    • many misc. improvements to most syscalls touching the filesystem
wasmer - 0.5.6

Published by syrusakbary over 5 years ago

This version of wasmer ships with WebAssembly Interfaces bundled into wapm. Also improves significantly WASI tests and implementation.

Changelog

  • #565 Update wapm and bump version to 0.5.6
  • #563 Improve wasi testing infrastructure
    • fixes arg parsing from comments & fixes the mapdir test to have the native code doing the same thing as the WASI code
    • makes wasitests-generate output stdout/stderr by default & adds function to print stdout and stderr for a command if it fails
    • compiles wasm with size optimizations & strips generated wasm with wasm-strip
  • #554 Finish implementation of wasi::fd_seek, fix bug in filestat
Package Rankings
Top 1.27% on Crates.io