bytecodealliance/wasi-rs

GitHub: bytecodealliance/wasi-rs

Bytecode Alliance 官方维护的 Rust WASI 绑定库,为 WebAssembly 模块提供安全的系统接口访问能力。

Stars: 338 | Forks: 60

wasi

一个 Bytecode Alliance 项目

Rust 的 WASI API 绑定

Crates.io version Download docs.rs docs

本仓库包含 WASI API 的底层 Rust 绑定,这些绑定被分发并发布到 crates.io 上的 crate 中。目前的 crate 包括: * [`wasi`](https://crates.io/crates/wasi) - 这是最新的稳定 WASI 提案的重新导出。目前这代表了对 WASIp2 的绑定。 * [`wasip1`](https://crates.io/crates/wasip1) - 此 crate 明确包含 WASIp1 快照的绑定。WASIp1 版本标准的开发已经停止,此 crate 处于维护模式。 * [`wasip2`](https://crates.io/crates/wasip2) - 此 crate 明确包含由最新稳定版 `wit-bindgen` 生成的最新稳定 WASIp2 版本的绑定。 * [`wasip3`](https://crates.io/crates/wasip3) - 包含使用最新 `wit-bindgen` 的 WASIp3 API 的最新快照。 ## `wasi` crate 目前的 `wasi` crate 是对 WASI 标准最新稳定版本的轻量级重新导出。目前是 WASIp2。例如,每当 `wasip2` crate 版本号更新时,`wasi` crate 版本号也会随之更新,并且随着 WASIp2 API 的添加或用于生成绑定的 `wit-bindgen` 工具的演进,其接口和绑定可能会随时间发生变化。 为了明确指定您希望使用的 WASI 标准版本,建议直接使用 `wasip2` crate。 ## crate 版本号 `wasi` crate 包含“构建元数据”,用于指示其包含的 WASI 标准的版本。此元数据仅供参考,不能用于在 Cargo 中限制版本要求。例如,`wasip2` crate 也采用了相同的方案。 ## 该使用哪个 crate? 最合适的 crate 取决于您编译时使用的 WebAssembly Rust 目标: * `wasm32-unknown-unknown` - 不要使用本仓库中的任何 crate,因为 WASI 通常不打算与此目标一起使用。 * `wasm32-wasip1` - 使用 `wasip1` crate,因为其他 crate 基于此目标不使用的 component API。 * `wasm32-wasip2` - 使用 `wasip2` crate,并根据需要更新到较新版本。 * `wasm32-wasip3` - 使用 `wasip3` crate。 对于生成 component 的目标,例如 `wasm32-wasip2` 和 `wasm32-wasip3`,技术上您可以使用 `wasip2`、`wasip3` 或 `wasi` 中的任何一个。但是,建议尽可能与目标保持一致。 # 许可证 本项目采用 Apache 2.0 许可证(带 LLVM 例外)授权。有关更多详细信息,请参阅 [LICENSE](LICENSE)。 ### 贡献 除非您明确声明,否则您提交的任何旨在包含在本项目中的贡献,根据 Apache-2.0 许可证的定义,均应按上述条款许可,不附带任何额外条款或条件。
标签:AI工具, API绑定, Bytecode Alliance, crates-io, Rust, WASI, WASIp1, WASIp2, WASIp3, wasm, WebAssembly, wit-bindgen, 可视化界面, 安全决策支持, 底层库, 沙箱, 系统接口, 系统编程, 网络流量审计, 通知系统, 通知系统