Standalone JIT-style runtime for WebAsssembly, using Cranelift
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
filetests Add more trapping testcases. Nov 29, 2018
fuzz Update to Rust 2018 Edition. Jan 3, 2019
lib Change SignalHandlers.h to SignalHandlers.hpp Jan 15, 2019
misc_testsuite Implement the remaining valid spec tests. Dec 12, 2018
spec_testsuite @ b280064 Implement the remaining valid spec tests. Dec 12, 2018
src Handle errors cleanly in the wast runner. Jan 3, 2019
tests Update to Rust 2018 Edition. Jan 3, 2019
.gitignore Add Emacs backup and autosave files to .gitignore. Dec 5, 2018
.gitmodules Implement the remaining valid spec tests. Dec 12, 2018
.rustfmt.toml Update to cranelift's formatting and testing scripts. Jul 21, 2018
.travis.yml Update to Rust 1.31.0. Dec 7, 2018
CODE_OF_CONDUCT.md Add a CODE_OF_CONDUCT.nd and CONTRIBUTING.md. Dec 5, 2018
CONTRIBUTING.md Add a CODE_OF_CONDUCT.nd and CONTRIBUTING.md. Dec 5, 2018
Cargo.toml Update to Rust 2018 Edition. Jan 3, 2019
LICENSE Adjust whitespace to match the upstream exception text. Oct 30, 2018
README.md Tidy up some documentation comments. Jan 3, 2019
appveyor.yml Tidy up trap-handling code. Dec 19, 2018
build.rs Refactor the compilation and instantiation pipeline. Jan 3, 2019
clippy.toml More code reorganization and cleanups. Aug 3, 2018
format-all.sh Update to cranelift's formatting and testing scripts. Jul 21, 2018
publish-all.sh Bump version to 0.1.0 Dec 17, 2018
test-all.sh Enable RUST_BACKTRACE=1 when running "cargo test". Dec 5, 2018

README.md

Wasmtime: a WebAssembly Runtime.

Wasmtime is a standalone wasm-only runtime for WebAssembly, using the Cranelift JIT.

It runs WebAssembly code outside of the Web, and can be used both as a command-line utility or as a library embedded in a larger application.

Travis Status Appveyor Status Gitter chat Minimum rustc 1.30

Wasmtime is complete enough to pass the WebAssembly spec testsuite. Support for system APIs is coming soon!

One goal for this project is to implement CloudABI using WebAssembly as the code format, provide CloudABI system calls as WebAssembly host imports, and then port the Rust CloudABI package and CloudABI libc to it to support Rust, C, C++, and other toolchains.

CloudABI is a natural complement for WebAssembly, since WebAssembly provides sandboxing for code but doesn't have any builtin I/O, and CloudABI provides sandboxed I/O.

Additional goals for Wasmtime include:

  • Support a variety of host APIs (not just CloudABI), with fast calling sequences, and develop proposals for system calls in the WebAssembly Reference Sysroot.
  • Implement the proposed WebAssembly C API.
  • Facilitate testing, experimentation, and development around the Cranelift and Lightbeam JITs.
  • Develop a the native ABI used for compiling WebAssembly suitable for use in both JIT and AOT to native object files.

It's Wasmtime.