Bart Massey 2023 (version 0.2.1)
This crate contains basic niceties for writing no_std
modules for WASI. wasi-print
provides:
abort()
function that raises a WASI exception.panic_handler
that aborts after trying to print panic information.print_fd()
function that prints an &str
to a WASI fd
.print!()
, println!()
, !eprint()
and !eprintln()
.This is a full standalone Rust WASM program using
wasi_print
.
```rust
use wasi_print::*;
pub extern "C" fn mathadd(x: i32, y: i32) -> i32 { eprint!("guest running mathadd({}, {}) …", x, y); let result = x + y; eprintln!(" and returning {}", result); result } ```
print
: Include printing code. This requires nightly for
a variety of reasons.panic_handler
: Provide a panic handler.When used without the print
feature, this crate can be
built on stable Rust.
Figuring out how to write this was made much easier by this excellent blog post by "James [Undefined]".
This work is licensed under the "MIT License". Please see the file
LICENSE.txt
in this distribution for license terms.
Thanks to the cargo-readme
crate for generation of this README
.