#capability-provider #wasmcloud #wit-bindgen #interface #generate #macro #distributed

wasmcloud-provider-wit-bindgen-macro

Rust 编写的基于二进制 wasmCloud 能力提供者的内部使用 bindgen 宏

1 个不稳定版本

0.1.1 2024 年 3 月 27 日

#31#capability-provider


用于 wasmcloud-provider-wit-bi…

Apache-2.0

140KB
2K SLoC

wasmcloud-provider-wit-bindgen

此存储库包含一个宏,帮助构建以二进制形式分发并使用 WIT(Wasmcloud 能力提供者),它适用于 WIT

此存储库利用 wit-bindgen 生成接口和代码,但生成纯 Rust 代码(即非 wasm32-* Rust 目标),可用于构建能力提供者二进制文件。

用法

此存储库可以类似于 wit-bindgen 使用,以下语法

wasmcloud_provider_wit_bindgen::generate!(
    YourProvider,
    "wasmcloud:contract",
    "your-world"
);

/// Implementation that you will contribute
struct YourProvider;

impl Trait for YourProvider {
  ...
}

请注意,第二个参数之后的参数与 wit-bindgen 使用的选项类似,但生成的代码旨在在由 wasmcloud 主机管理的 Rust 二进制文件中使用。

例如,要构建 wasmCloud keyvalue WIT 接口的提供者

/// Generate bindings for a wasmCloud provider
wasmcloud_provider_wit_bindgen::generate!(
    MyKeyvalueProvider,
    "wasmcloud:keyvalue",
    "keyvalue"
);

警告 您需要在您的crate根目录中拥有适当的WIT接口文件(例如 keyvalue.wit),在 <crate root>/wit/keyvalue.wit

注意,在生成适合您的WIT的绑定后,您必须

  • 遵循编译器实现适当的特性
  • 编写一个 main.rs 文件来正确设置您的提供者
  • 在您的wasmCloud lattice上使用您的提供者的编译后的二进制文件

依赖项

~9.5MB
~161K SLoC