3个版本 (稳定)

1.1.0 2022年3月6日
1.0.0 2022年2月1日
0.1.0 2022年1月2日

#87#bus

Download history · Rust 包仓库 42/week @ 2024-03-14 · Rust 包仓库 54/week @ 2024-03-21 · Rust 包仓库 108/week @ 2024-03-28 · Rust 包仓库 57/week @ 2024-04-04 · Rust 包仓库 50/week @ 2024-04-11 · Rust 包仓库 49/week @ 2024-04-18 · Rust 包仓库 64/week @ 2024-04-25 · Rust 包仓库 49/week @ 2024-05-02 · Rust 包仓库 40/week @ 2024-05-09 · Rust 包仓库 50/week @ 2024-05-16 · Rust 包仓库 42/week @ 2024-05-23 · Rust 包仓库 49/week @ 2024-05-30 · Rust 包仓库 32/week @ 2024-06-06 · Rust 包仓库 39/week @ 2024-06-13 · Rust 包仓库 55/week @ 2024-06-20 · Rust 包仓库 28/week @ 2024-06-27 · Rust 包仓库

每月165次下载
13 个crate中使用(通过 wasm-bus

MIT/Apache

74KB
1.5K SLoC

WASM总线宏

有用的宏,使导出和导入API更加容易。

示例API

以下是如何为特定API生成辅助类和序列化对象的简单示例

use wasm_bus::macros::*;

#[wasm_bus(format = "json")]
pub trait Time {
    async fn sleep(&self, duration_ms: u128);
}

相对对象

还可以生成一系列带有特定上下文的子API

use serde::*;
use std::sync::Arc;
use wasm_bus::macros::*;

#[wasm_bus(format = "bincode")]
pub trait SocketBuilder {
    async fn connect(
        &self,
        url: String,
        state_change: impl Fn(SocketState),
        receive: impl Fn(Vec<u8>),
    ) -> Arc<dyn WebSocket>;
}

#[wasm_bus(format = "bincode")]
pub trait WebSocket {
    async fn send(&self, data: Vec<u8>) -> SendResult;
}

测试

您可以将WASI程序上传到wapm.io,然后在Tokera Shell中进行测试。

https://tokera.sh

依赖项

~0.5–1MB
~24K SLoC