#wasix #cargo #cargo-build #wasm-build #cargo-subcommand #wasi #targets

bin+lib cargo-wasix

wasm32-wasmer-wasiwasm64-wasmer-wasi 目标轻松构建代码的 Cargo 子命令;即 WASIX 目标。

19 个版本

0.1.23 2023 年 8 月 31 日
0.1.22 2023 年 8 月 30 日
0.1.20 2023 年 6 月 7 日
0.1.19 2023 年 5 月 24 日
0.1.3 2022 年 5 月 26 日

#106 in Cargo 插件

Download history 34/week @ 2024-04-08 37/week @ 2024-04-15 11/week @ 2024-04-22 1/week @ 2024-04-29 14/week @ 2024-05-06 14/week @ 2024-05-20 19/week @ 2024-05-27 18/week @ 2024-06-03 17/week @ 2024-06-10 26/week @ 2024-06-17 16/week @ 2024-06-24 16/week @ 2024-07-01 11/week @ 2024-07-08 2/week @ 2024-07-15 33/week @ 2024-07-22

每月 64 次下载

Apache-2.0 WITH LLVM-exception

93KB
2K SLoC

cargo-wasix

Cargo 子命令,用于将 Rust 代码编译为 wasix,它是 Webassembly wasi 的超集,并增加了额外的功能。

更多信息请访问 wasix.org

安装

安装需要 — 通过 Rustrustup 安装

信息

此子命令在 crates.io 上可用

支持的平台

  • x86_64-unknown-linux-gnu
  • x86_64-apple-darwin
  • aarch64-apple-darwin
  • x86_64-pc-windows-msvc

您可以通过以下方式安装此 Cargo 子命令:

Cargo Install

$ cargo install cargo-wasix

Cargo Binstall

cargo binstall 提供了一种低复杂度的机制来安装 rust 二进制文件,作为从源码构建(通过 cargo install)或手动下载包的替代方案。

使用预构建的二进制文件。

$ cargo binstall cargo-wasix

从安装脚本安装

使用预构建的二进制文件。

适用于 Linux 和 macOS

$ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/wasix-org/cargo-wasix/releases/latest/download/cargo-wasix-installer.sh | sh

适用于 Windows

irm https://github.com/wasix-org/cargo-wasix/releases/latest/download/cargo-wasix-installer.ps1 | iex

验证安装

$ cargo wasix --version

用法

《cargo wasix》子命令是围绕《cargo》子命令的一个薄层包装,为《wasm32-wasmer-wasi》目标提供了优化的默认值。使用《cargo wasix》看起来与使用《cargo》非常相似。

  • cargo wasix build — 以调试模式为wasix目标构建您的代码。

  • cargo wasix build --release — 构建您《*.wasm》的优化版本。

  • cargo wasix run — 执行一个二进制文件。

  • cargo wasix test — 在《wasm32-wasmer-wasi》上运行您的测试。

  • cargo wasix bench — 在《wasm32-wasmer-wasi》上运行您的基准测试。

通常情况下,如果您要执行《cargo foo --flag》,您很可能执行《cargo wasix foo --flag》,并且所有内容都将为《wasm32-wasmer-wasi》目标“顺利工作”。

要亲自尝试,请尝试程序的一些hello-world版本!

$ cargo new wasix-hello-world
     Created binary (application) `wasix-hello-world` package
$ cd wasix-hello-world
$ cargo wasix run
   Compiling wasix-hello-world v0.1.0 (/code/wasix-hello-world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.15s
     Running `cargo-wasix target/wasm32-wasmer-wasi/debug/wasix-hello-world.wasm`
     Running `target/wasm32-wasmer-wasi/debug/wasix-hello-world.wasm`
Hello, world!

或者一个带有一些测试的库

$ cargo new wasix-hello-world --lib
     Created library `wasix-hello-world` package
$ cd wasix-hello-world
$ cargo wasix test
   Compiling wasix-hello-world v0.1.0 (/code/wasix-hello-world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.19s
     Running target/wasm32-wasmer-wasi/debug/deps/wasix_hello_world-9aa88657c21196a1.wasm
     Running `/code/wasix-hello-world/target/wasm32-wasmer-wasi/debug/deps/wasix_hello_world-9aa88657c21196a1.wasm`

running 1 test
test tests::it_works ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

许可协议

本项目受Apache 2.0许可协议和LLVM特例的许可。有关详细信息,请参阅LICENSE

贡献

除非您明确说明,否则您提交给本项目的任何有意贡献,根据Apache-2.0许可证定义,将按上述方式许可,不附加任何额外条款或条件。

依赖项

~13-27MB
~454K SLoC