Wasmtime's C API
API Documentation
The API documentation for the Wasmtime C library is hosted here..
Using in a C Project
Using a Pre-Built Static or Dynamic Library
Each release on Wasmtime's GitHub Releases page has pre-built binaries for both static and dynamic libraries for a variety of architectures and operating systems attached, as well as header files you can include.
Building Wasmtime's C API from Source
To use Wasmtime from a C or C++ project, you must have CMake and a Rust toolchain installed.
From the root of the Wasmtime repository, run the following commands:
$ cmake -S crates/c-api -B target/c-api --install-prefix "$(pwd)/artifacts"
$ cmake --build target/c-api
$ cmake --install target/c-api
These commands will produce the following files:
-
artifacts/lib/libwasmtime.{a,lib}
: Static Wasmtime library. Exact extension depends on your operating system. -
artifacts/lib/libwasmtime.{so,dylib,dll}
: Dynamic Wasmtime library. Exact extension depends on your operating system. -
artifacts/include/**.h
: Header files for working with Wasmtime.
Using in a Rust Project
If you have a Rust crate that contains bindings to a C or C++ library that uses Wasmtime, you can link the Wasmtime C API using Cargo.
- Add a dependency on the
wasmtime-c-api-impl
crate to yourCargo.toml
. Note that package name differs from the library name.
[]
= { = "16.0.0", = "wasmtime-c-api-impl" }
- In your
build.rs
file, when compiling your C/C++ source code, add the Cwasmtime-c-api
headers to the include path: