cargo wasi

A Bytecode Alliance project

A lightweight Cargo subcommand to build code for the wasm32-wasi target.

Crates.io version Download docs.rs docs

Guide | Contributing

Installation

To install this Cargo subcommand, first you'll want to install Rust and then you'll execute:

$ cargo install cargo-wasi

After that you can verify it works via:

$ cargo wasi --version

Read more about installation in the guide!

Usage

The cargo wasi subcommand is a thin wrapper around cargo subcommands, providing optimized defaults for the wasm32-wasi target. Using cargo wasi looks very similar to using cargo:

In general, if you'd otherwise execute cargo foo --flag you can likely execute cargo wasi foo --flag and everything will "just work" for the wasm32-wasi target.

To give it a spin yourself, try out the hello-world versions of programs!

$ cargo new wasi-hello-world Created binary (application) `wasi-hello-world` package $ cd wasi-hello-world $ cargo wasi run Compiling wasi-hello-world v0.1.0 (/code/wasi-hello-world) Finished dev [unoptimized + debuginfo] target(s) in 0.15s Running `cargo-wasi target/wasm32-wasi/debug/wasi-hello-world.wasm` Running `target/wasm32-wasi/debug/wasi-hello-world.wasm` Hello, world!

Or a library with some tests:

`` $ cargo new wasi-hello-world --lib Created librarywasi-hello-worldpackage $ cd wasi-hello-world $ cargo wasi test Compiling wasi-hello-world v0.1.0 (/code/wasi-hello-world) Finished dev [unoptimized + debuginfo] target(s) in 0.19s Running target/wasm32-wasi/debug/deps/wasi_hello_world-9aa88657c21196a1.wasm Running/code/wasi-hello-world/target/wasm32-wasi/debug/deps/wasihelloworld-9aa88657c21196a1.wasm`

running 1 test test tests::it_works ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ```

Read more about cargo wasi usage in the guide!

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

See the contributing section of the guide to start hacking on cargo wasi!