21 个版本 (13 个重大更改)
0.15.0 | 2024 年 7 月 31 日 |
---|---|
0.13.2 | 2024 年 6 月 1 日 |
0.9.1 | 2024 年 3 月 13 日 |
0.5.0 | 2023 年 12 月 22 日 |
0.0.0 |
|
#1501 在 WebAssembly
每月 165 次下载
135KB
3K SLoC
wit
工具
一个用于创建和发布 WIT 包到 WebAssembly 组件注册表 的工具。
WIT 包用于在 WebAssembly 组件模型 中定义接口、类型和 WebAssembly 组件使用的世界。
要求
wit
工具是用 Rust 编写的,因此您需要安装最新稳定的 Rust。
安装
要安装 wit
子命令,运行以下命令
cargo install wit
初始化 WIT 包
要初始化当前目录中的新 WIT 包
wit init
这将创建一个包含以下内容的 wit.toml
文件
version = "0.1.0"
[dependencies]
[registries]
默认情况下,WIT 包将不会指定任何依赖项。
注册表部分包含注册表名称到 URL 的映射。明确支持多个注册表的目的是,没有一个注册表将是 WebAssembly 组件的中心仓库;在未来,将使用注册表的联盟来发布和发现 WebAssembly 组件。
名为 default
的注册表将在没有明确指定要使用的注册表时使用。
设置默认注册表的示例
[registries]
default = "https://preview-registry.bytecodealliance.org"
默认注册表也可以通过将 --registry
选项传递给 init
命令来设置
wit init --registry https://preview-registry.bytecodealliance.org
添加依赖项
要添加对另一个 WIT 包的依赖,请使用 add
命令
wit add <PACKAGE>
其中 PACKAGE
是要添加依赖的包,例如 wasi:cli
。
该命令会联系注册表以确定软件包的最新版本,并将其添加到wit.toml
文件中作为依赖项。
可能使用的版本要求可以使用分隔符指定@
wit add wasi:cli@2.0.0
构建WIT软件包
要将WIT软件包构建为二进制WebAssembly文件,请使用build
命令
wit build
该命令将根据目录中.wit
文件中解析出的软件包名称输出一个.wasm
文件。
使用--output
选项指定输出文件名
wit build --output my-package.wasm
更新依赖项
要更新WIT软件包的依赖项,请使用update
命令
wit update
该命令将联系注册表以获取在wit.toml
中指定的依赖项的最新版本,并在锁文件wit.lock
中更新版本。
将WIT软件包发布到注册表
要将WIT软件包发布到注册表,请使用publish
命令
wit publish
对于新软件包,必须使用--init
选项来初始化正在发布的软件包的新日志
wit publish --init
该命令将使用默认签名密钥将软件包发布到默认注册表
要指定不同的注册表或签名密钥,请分别使用--registry
和--key-name
选项
wit publish --registry https://registry.example.com --key-name my-signing-key
管理签名密钥
WebAssembly组件注册表根据用于签名正在发布的记录的密钥接受软件包
wit
工具使用操作系统提供的密钥环来安全地存储签名密钥。使用warg
CLI来管理您的签名密钥。
为wit
做出贡献
wit
是(未来的)Bytecode Alliance项目,并遵循Bytecode Alliance的行为准则和组织行为准则。
获取代码
您将通过git
克隆代码
git clone https://github.com/bytecodealliance/cargo-component
测试更改
我们希望为所有更改编写测试。可以通过以下方式运行测试
cargo test -p wit
您将主要向tests/
目录添加测试。
提交更改
wit
的更改通过拉取请求(PR)进行管理。每个人都可以提交一个拉取请求!我们将在最多几天内尝试审查它或回复它。
代码格式化
代码必须使用当前Rust稳定版的cargo fmt
命令进行格式化。这将在CI上检查。
持续集成
wit
存储库的CI相对较大。它在Windows、macOS和Linux上测试更改。
发布
此存储库的发布完全通过CI自动化。每当推送标签到存储库时就会发生发布。因此,要发布新版本,您需要创建一个将版本号提升的PR(请参阅ci/publish.rs
脚本),合并PR,然后标记PR并推送标签。这应该会触发所有必要的步骤,以将所有存储库和二进制文件发布到crates.io。
依赖项
~26–45MB
~705K SLoC