wasi-common

This repo strips away those bits of lucet-wasi which can potentially be encapsulated in a separated crate with potential plug'n'play use in both Lucet and Wasmtime projects.

This repo is strictly experimental.

Supported syscalls

We support a subset of the WASI API, though we are adding new syscalls on a regular basis. We currently implement:

  • __wasi_args_get
  • __wasi_args_sizes_get
  • __wasi_clock_res_get
  • __wasi_clock_time_get
  • __wasi_environ_get
  • __wasi_environ_sizes_get
  • __wasi_fd_close
  • __wasi_fd_fdstat_get
  • __wasi_fd_fdstat_set_flags
  • __wasi_fd_prestat_dir_name
  • __wasi_fd_prestat_get
  • __wasi_fd_read
  • __wasi_fd_seek
  • __wasi_fd_write
  • __wasi_path_open
  • __wasi_proc_exit
  • __wasi_random_get

This is enough to run basic C and Rust programs, including those that use command-line arguments, environment variables, stdio, and basic file operations.

Third-Party Code

src/wasm32.rs is copied from wasmtime, along with the associated LICENSE.wasmtime file.

Significant parts of our syscall implementations are derived from the C implementations in cloudabi-utils. See LICENSE.cloudabi-utils for license information.

Description
No description provided
Readme 125 MiB
Languages
Rust 77.8%
WebAssembly 20.6%
C 1.3%