Skip to content
Standalone JIT-style runtime for WebAssembly, using Cranelift
Rust C# C++ WebAssembly Shell JavaScript Other
Branch: master
Clone or download
joshtriplett Make Func::getN return a Result rather than an Option (#966)
This allows getN to return a detailed explanation of any type signature
mismatch, and makes it easy to just use `?` on the result of getN rather
than constructing a (necessarily vaguer) error message in the caller.
Latest commit aa78d49 Feb 23, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dependabot Update dependabot for only security updates Dec 13, 2019
.github Test basic DWARF generation (#931) Feb 20, 2020
ci Move the C API to a separate crate (#818) Jan 14, 2020
crates Make Func::getN return a Result rather than an Option (#966) Feb 22, 2020
docs Update broken URL to Fuchsia docs (#936) Feb 12, 2020
fuzz Remove always-on logging from fuzz targets (#878) Jan 30, 2020
scripts Delete the `wasmtime-wasi-c` crate (#844) Jan 24, 2020
src Adds perf jitdump support (#360) Feb 21, 2020
tests Adds perf jitdump support (#360) Feb 21, 2020
.gitignore Commit Cargo.lock. (#705) Dec 13, 2019
.gitmodules Move the C API to a separate crate (#818) Jan 14, 2020
.rustfmt.toml Convert a CRLF file. Nov 9, 2019
CODE_OF_CONDUCT.md docs: Include the code of conduct directly into the mdbook Dec 3, 2019
CONTRIBUTING.md Fix links in CONTRIBUTING.md (#565) Nov 14, 2019
Cargo.lock Update dependencies to current versions, reducing duplicate versions (#… Feb 22, 2020
Cargo.toml Update dependencies to current versions, reducing duplicate versions (#… Feb 22, 2020
LICENSE Extract common interface from lucet-wasi May 4, 2019
ORG_CODE_OF_CONDUCT.md Make it a Bytecode Alliance project (#549) Nov 12, 2019
README.md Update lightbeam link (#558) Nov 13, 2019
SECURITY.md Make it a Bytecode Alliance project (#549) Nov 12, 2019
build.rs Update to cranelift 0.58.0 and enable (but ignore) reference types an… Feb 7, 2020
clippy.toml General Cargo.toml cleanup. (#529) Nov 8, 2019

README.md

Wasmtime: a WebAssembly Runtime

A Bytecode Alliance project

Wasmtime is a standalone wasm-only optimizing runtime for WebAssembly and WASI. 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.

To get started, visit wasmtime.dev.

build-status gitter-chat-badge minimum-rustc

There are Rust, C, and C++ toolchains that can compile programs with WASI. See the WASI intro for more information, and the WASI tutorial for a tutorial on compiling and running programs using WASI and wasmtime, as well as an overview of the filesystem sandboxing system.

Wasmtime passes the WebAssembly spec testsuite. To run it, update the tests/spec_testsuite submodule with git submodule update --remote, and it will be run as part of cargo test.

Wasmtime does not yet implement Spectre mitigations, however this is a subject of ongoing research.

Additional goals for Wasmtime include:

  • Support a variety of host APIs (not just WASI), with fast calling sequences, and develop proposals for additional API modules to be part of WASI.
  • Facilitate development and testing around the Cranelift and Lightbeam JITs, and other WebAssembly execution strategies.
  • Develop a native ABI used for compiling WebAssembly suitable for use in both JIT and AOT to native object files.

Including Wasmtime in your project

Wasmtime exposes an API for embedding as a library through the wasmtime subcrate, which contains both a high-level and safe Rust API, as well as a C-compatible API compatible with the proposed WebAssembly C API.

For more information, see the Rust API embedding chapter of the Wasmtime documentation.

It's Wasmtime.

You can’t perform that action at this time.