wasmer-wasix 0.32.0

WASI and WASIX implementation library for Wasmer WebAssembly runtime
[package]
name = "wasmer-wasix"
version = "0.32.0"
description = "WASI and WASIX implementation library for Wasmer WebAssembly runtime"
categories = ["wasm", "os"]
keywords = ["wasm", "webassembly", "wasi", "sandbox", "ABI"]
readme = "README.md"
authors.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true

[dependencies]
wasmer-package.workspace = true
wasmer-wasix-types = { path = "../wasi-types", version = "0.32.0", features = [
	"enable-serde",
] }
wasmer-types = { path = "../types", version = "=5.0.2", default-features = false }
wasmer = { path = "../api", version = "=5.0.2", default-features = false, features = [
	"wat",
	"js-serializable-module",
] }
virtual-mio = { path = "../virtual-io", version = "0.6.0", default-features = false }
virtual-fs = { path = "../virtual-fs", version = "0.20.0", default-features = false, features = [
	"webc-fs",
] }
virtual-net = { path = "../virtual-net", version = "0.12.0", default-features = false, features = [
	"rkyv",
] }
wasmer-journal = { path = "../journal", version = "0.14.0", default-features = false }
wasmer-config = { version = "0.10.0", path = "../config" }

http.workspace = true
dashmap.workspace = true
base64.workspace = true
webc.workspace = true
serde_yaml.workspace = true
rkyv.workspace = true
shared-buffer.workspace = true
hyper = { workspace = true, features = ["server"], optional = true }
derive_more.workspace = true

xxhash-rust = { version = "0.8.8", features = ["xxh64"] }
rusty_pool = { version = "0.7.0", optional = true }
cfg-if = "1.0"
thiserror = "1"
tracing = { version = "0.1.37" }
getrandom = "0.2"
typetag = { version = "0.1", optional = true }
serde = { version = "1.0", default-features = false, features = ["derive"] }
bincode = { version = "1.3" }
chrono = { version = "^0.4.38", default-features = false, features = [
	"wasmbind",
	"std",
	"clock",
], optional = true }
bytes = "1"
anyhow = { version = "1.0.66" }
lazy_static = "1.4"
sha2 = { version = "0.10" }
waker-fn = { version = "1.1" }
cooked-waker = "^5"
rand = "0.8"
tokio = { workspace = true, features = [
	"sync",
	"macros",
	"time",
	"rt",
], default-features = false }
tokio-stream = { version = "0.1", features = ["sync"] }
futures = { version = "0.3" }
# used by feature='os'
async-trait = { version = "^0.1" }
urlencoding = { version = "^2" }
serde_derive = { version = "^1" }
serde_json = { version = "^1" }
weezl = { version = "^0.1" }
hex = { version = "^0.4" }
linked_hash_set = { version = "0.1" }
heapless = "0.7.16"
once_cell = "1.17.0"
pin-project = "1.0.12"
semver = "1.0.17"
tempfile = "3.6.0"
num_enum = "0.5.7"
# Used by the WCGI runner
wcgi = { version = "0.3.0", optional = true }
wcgi-host = { version = "0.3.0", optional = true }
tower-http = { version = "0.5.0", features = [
	"trace",
	"util",
	"catch-panic",
	"cors",
], optional = true }
tower = { version = "0.4.13", features = ["make", "util"], optional = true }
url = "2.3.1"
bytecheck = "0.6.8"
blake3 = "1.0"
petgraph = "0.6.3"
lz4_flex = { version = "0.11" }
rayon = { version = "1.7.0", optional = true }
wasm-bindgen = { version = "0.2.87", optional = true }
js-sys = { version = "0.3.64", optional = true }
wasm-bindgen-futures = { version = "0.4.37", optional = true }
web-sys = { version = "0.3.64", features = [
	"Request",
	"RequestInit",
	"Window",
	"WorkerGlobalScope",
	"RequestMode",
	"Response",
	"Headers",
], optional = true }
hyper-util = { version = "0.1.5", features = [
	"server",
	"server-graceful",
	"tokio",
	"service",
	"client",
], optional = true }
http-body-util = { version = "0.1.1", optional = true }
toml = "0.8"
pin-utils = "0.1.0"

[target.'cfg(not(any(target_arch = "riscv64", target_arch = "loongarch64")))'.dependencies.reqwest]
workspace = true
default-features = false
features = ["rustls-tls", "json", "stream", "socks", "blocking"]
optional = true

[target.'cfg(any(target_arch = "riscv64", target_arch = "loongarch64"))'.dependencies.reqwest]
workspace = true
default-features = false
features = ["native-tls", "json", "stream", "socks", "blocking"]
optional = true

[target.'cfg(unix)'.dependencies]
libc.workspace = true

[target.'cfg(all(unix, not(target_os="ios")))'.dependencies]
termios = { version = "0.3" }

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.59", features = [
	"Win32_System_SystemInformation",
] }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
terminal_size = { version = "0.3.0" }

[dev-dependencies]
wasmer = { path = "../api", version = "=5.0.2", default-features = false, features = [
	"wat",
	"js-serializable-module",
] }
tokio = { workspace = true, features = [
	"sync",
	"macros",
	"rt",
], default-features = false }
pretty_assertions.workspace = true
tracing-test = "0.2.4"
wasm-bindgen-test = "0.3.0"
env_logger = { version = "0.11.5", default-features = false }
log = "0.4.22"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = "0.3.0"
tracing-wasm = "0.2"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
tracing-subscriber = { version = "^0.3" }
wasmer = { path = "../api", version = "=5.0.2", default-features = false, features = [
	"wat",
	"js-serializable-module",
	"cranelift",
] }

[features]
default = ["sys-default"]

time = ["tokio/time"]
ctrlc = ["tokio/signal"]

webc_runner_rt_wcgi = [
	"hyper",
	"hyper-util",
	"http-body-util",
	"wcgi",
	"wcgi-host",
	"tower",
	"tower-http",
]
webc_runner_rt_dcgi = ["webc_runner_rt_wcgi", "journal"]
webc_runner_rt_dproxy = [
	"hyper",
	"hyper-util",
	"http-body-util",
	"tower",
	"tower-http",
	"journal",
]

sys = ["webc/mmap", "time", "virtual-mio/sys"]
sys-default = [
	"sys",
	"logging",
	"host-fs",
	"journal",
	"sys-poll",
	"sys-thread",
	"host-vnet",
	"host-threads",
	"host-reqwest",
	"ctrlc",
]
sys-poll = []
extra-logging = []
sys-thread = ["tokio/rt", "tokio/time", "tokio/rt-multi-thread", "rusty_pool"]
journal = ["tokio/fs", "wasmer-journal/log-file"]

# Deprecated. Kept it for compatibility
compiler = []

js = [
	"virtual-fs/no-time",
	"getrandom/js",
	"chrono",
	"js-sys",
	"wasm-bindgen",
	"wasm-bindgen-futures",
	"web-sys",
]
js-default = ["js"]
test-js = ["js", "wasmer/wat"]

host-vnet = ["virtual-net/host-net"]
host-threads = []
host-reqwest = ["reqwest"]
host-fs = ["virtual-fs/host-fs"]
remote-vnet = ["virtual-net/remote"]

logging = ["tracing/log"]
disable-all-logging = ["tracing/release_max_level_off", "tracing/max_level_off"]
enable-serde = [
	"typetag",
	"virtual-fs/enable-serde",
	"wasmer-wasix-types/enable-serde",
]

[package.metadata.docs.rs]
features = [
	"wasmer/sys",
	"webc_runner_rt_wcgi",
	"webc_runner_rt_dcgi",
	"webc_runner_rt_dproxy",
	"sys-default",
]
rustc-args = ["--cfg", "docsrs"]