Bart Massey 2023 (version 0.2.2)
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.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
.