#wasm-component #component #component-model #signing-key

bin+lib wit

一个用于构建和发布 WIT 包到注册表的工具

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 2021 年 11 月 16 日

#1501WebAssembly

Download history 1/week @ 2024-04-21 136/week @ 2024-05-12 258/week @ 2024-05-19 101/week @ 2024-05-26 163/week @ 2024-06-02 17/week @ 2024-06-09 2/week @ 2024-06-16 117/week @ 2024-07-07 12/week @ 2024-07-14 146/week @ 2024-07-28 5/week @ 2024-08-04

每月 165 次下载

Apache-2.0 WITH LLVM-exception

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