wasmer

🚀 The leading Wasm Runtime supporting WASIX, WASI and Emscripten

MIT License

Downloads
39.7M
Stars
18.2K
Committers
195

Bot releases are hidden (Show)

wasmer - v3.0.0-rc.1

Published by fschutt almost 2 years ago

Install the rc1 version of wasmer in your machine:

curl https://get.wasmer.io -sSfL | sh -s "v3.0.0-rc.1"

This release includes:

  • Ability to automatically download and run packages from wapm.io, for example wasmer run https://wapm.io/python/python or wasmer ls
  • New functions to get the function and module name from a wasm_frame_t (for prettier stack traces)
  • Filesystem now properly respects read and write permissons (previously reading and writing files was always allowed, any file descriptor could be read from)
  • Bugfixes regarding popcnt instruction on M1 Macs
  • Table imports now properly check for the correct maximum size (https://github.com/wasmerio/wasmer/issues/3197)

What's changed

  • #3222 Add function to retrieve function name from wasm_frame_t
  • #3240 Fix filesystem rights on WASI, add integration test for file permissions
  • #3238 Fixed main README ocaml homepage link and added ocaml in other language README
  • #3145 C-API: add functions to overwrite stdin / stdout / stderr handlers
  • #3215 Update wasmer --version logic, integrate wapm-cli
  • #3248 Move loupe CHANGELOG entry from 2.3.0 to 3.x
  • #3230 Remove test if dest file exist on path_rename wasi syscall (for #3228)
  • #3061 Removed trailing zero in WASI::fd_prestat_dir_name name return (for #3025)
  • #3223 Delete lib/wasi-types-generated directory
  • #3178 Feat enhanced tinytunable test
  • #3177 Auto-generate wasi-types from .wit files
  • #3218 Seal HostFunctionKind
  • #3221 Fix #3197
  • #3229 Fixed version to nightly-2022-10-09 for the CI build Minimal Wasmer Headless again
  • #3227 Fixed version to nightly-2022-10-09 for the CI build Minimal Wasmer Headless
  • #3226 Fixed version to nightly-2002-10-09 for the CI build Minimal Wasmer Headless
  • #3211 fix popcnt for aarch64
  • #3204 Fixed a typo in README
wasmer - 3.0.0-beta

Published by epilys about 2 years ago

This release includes fully functional create-exe cross-compilation based on Zig.

Check out the details in the release blogpost:
https://wasmer.io/posts/wasm-as-universal-binary-format-part-1-native-executables

Or install the beta version of wasmer in your machine:

curl https://get.wasmer.io -sSfL | sh -s "3.0.0-beta"
wasmer - 3.0.0-alpha

Published by epilys about 2 years ago

3.0.0 contains major API changes. For in-depth detail read the migration guide to 3.0.0.

What's Changed

New Contributors

Full Changelog: https://github.com/wasmerio/wasmer/compare/2.3.0...3.0.0-alpha

wasmer - 0.17.1

Published by syrusakbary over 4 years ago

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.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.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
wasmer - 0.5.5

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.

Changelog

  • #541 Fix dependency graph by making separate test crates; ABI implementations should not depend on compilers. Add Cranelift fork as git submodule of clif-backend
  • #537 Add hidden flag (--cache-key) to use prehashed key into the compiled wasm cache and change compiler backend-specific caching to use directories
  • #536 Update cache to use compiler backend name in cache key
wasmer - 0.5.4

Published by syrusakbary over 5 years ago

Changelog

  • #529 Updates the Wasm Interface library, which is used by wapm, with bug fixes and error message improvements
wasmer - 0.5.3

Published by syrusakbary over 5 years ago

Changelog

  • #523 Update wapm version to fix bug related to signed packages in the global namespace and locally-stored public keys
wasmer - 0.5.2

Published 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.

Changelog

  • #521 Update Wapm-cli, bump version numbers
  • #518 Update Cranelift and WasmParser
  • #514 #519 Improved Emscripten network related calls, added a null check to WasmPtr
  • #515 Improved Emscripten dyncalls
  • #513 Fix emscripten lseek implementation.
  • #510 Simplify construction of floating point constants in LLVM backend. Fix LLVM assertion failure due to definition of %ctx.
Package Rankings
Top 1.27% on Crates.io