[package] name = "wasi-common" version.workspace = true authors.workspace = true 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.workspace = true rust-version.workspace = true include = ["src/**/*", "tests/**/*", "witx", "README.md", "LICENSE", "build.rs"] [lints] workspace = true [dependencies] anyhow = { workspace = true, features = ['std'] } thiserror = { workspace = true } wiggle = { workspace = true } tracing = { workspace = true } cap-std = { workspace = true } cap-rand = { workspace = true } bitflags = { workspace = true } log = { workspace = true } # Optional, enabled by wasmtime feature: wasmtime = { workspace = true, optional = true, features = ['runtime'] } # Optional, enabled by sync feature: cap-fs-ext = { workspace = true, optional = true } cap-time-ext = { workspace = true, optional = true } fs-set-times = { workspace = true, optional = true } system-interface = { workspace = true, features = ["cap_std_impls"], optional = true } io-lifetimes = { workspace = true, optional = true } # Optional, enabled by tokio feature: tokio = { workspace = true, features = [ "rt", "fs", "time", "io-util", "net", "io-std", "rt-multi-thread"], optional = true } # Optional, enabled by exit feature: libc = { workspace = true, optional = true } [target.'cfg(unix)'.dependencies] rustix = { workspace = true, features = ["fs", "event"] } [target.'cfg(windows)'.dependencies] once_cell = { workspace = true } io-extras = { workspace = true } rustix = { workspace = true, features = ["net"] } [target.'cfg(windows)'.dependencies.windows-sys] workspace = true features = [ "Win32_Foundation", "Win32_Networking_WinSock", ] [dev-dependencies] wasi-common = { path = '.', features = ['tokio'] } tempfile = { workspace = true } test-log = { workspace = true } tracing-subscriber = { workspace = true } wasmtime = { workspace = true, features = ['cranelift', 'async', 'runtime'] } test-programs-artifacts = { workspace = true } tokio = { workspace = true, features = ['macros', 'rt-multi-thread'] } [features] default = ["trace_log", "wasmtime", "sync"] # 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"] # This feature enables integration with wasmtime. wasmtime = [ "dep:wasmtime", "wiggle/wasmtime", ] # This feature enables an implementation of the Wasi traits for a # synchronous wasmtime embedding. sync = [ "dep:cap-fs-ext", "dep:cap-time-ext", "dep:fs-set-times", "dep:system-interface", "dep:io-lifetimes", ] tokio = [ "sync", "wasmtime/async", "wiggle/wasmtime_async", "dep:tokio", ] exit = [ "wasmtime", "dep:libc" ] [package.metadata.docs.rs] all-features = true [[test]] name = "all"