* Use rsix to make system calls in Wasmtime. `rsix` is a system call wrapper crate that we use in `wasi-common`, which can provide the following advantages in the rest of Wasmtime: - It eliminates some `unsafe` blocks in Wasmtime's code. There's still an `unsafe` block in the library, but this way, the `unsafe` is factored out and clearly scoped. - And, it makes error handling more consistent, factoring out code for checking return values and `io::Error::last_os_error()`, and code that does `errno::set_errno(0)`. This doesn't cover *all* system calls; `rsix` doesn't implement signal-handling APIs, and this doesn't cover calls made through `std` or crates like `userfaultfd`, `rand`, and `region`.
48 lines
1.5 KiB
TOML
48 lines
1.5 KiB
TOML
[package]
|
|
name = "wasi-common"
|
|
version = "0.30.0"
|
|
authors = ["The Wasmtime Project Developers"]
|
|
description = "WASI implementation in Rust"
|
|
license = "Apache-2.0 WITH LLVM-exception"
|
|
categories = ["wasm"]
|
|
keywords = ["webassembly", "wasm"]
|
|
repository = "https://github.com/bytecodealliance/wasmtime"
|
|
readme = "README.md"
|
|
edition = "2018"
|
|
include = ["src/**/*", "WASI/phases/**/*", "README.md", "LICENSE", "build.rs"]
|
|
build = "build.rs"
|
|
|
|
# This doesn't actually link to a native library, but it allows us to set env
|
|
# vars like `DEP_WASI_COMMON_19_*` for crates that have build scripts and depend
|
|
# on this crate, allowing other crates to use the same witx files.
|
|
links = "wasi-common-19"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0"
|
|
thiserror = "1.0"
|
|
wiggle = { path = "../wiggle", default-features = false, version = "0.30.0" }
|
|
tracing = "0.1.19"
|
|
cap-std = "0.19.1"
|
|
cap-rand = "0.19.1"
|
|
bitflags = "1.2"
|
|
io-lifetimes = { version = "0.3.1", default-features = false }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
rsix = "0.23.0"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
winapi = "0.3"
|
|
|
|
[badges]
|
|
maintenance = { status = "actively-developed" }
|
|
|
|
[features]
|
|
default = ["trace_log"]
|
|
# This feature enables the `tracing` logs in the calls to target the `log`
|
|
# ecosystem of backends (e.g. `env_logger`. Disable this if you want to use
|
|
# `tracing-subscriber`.
|
|
trace_log = [ "wiggle/tracing_log", "tracing/log" ]
|
|
# Need to make the wiggle_metadata feature available to consumers of this
|
|
# crate if they want the snapshots to have metadata available.
|
|
wiggle_metadata = ["wiggle/wiggle_metadata"]
|