#grpc #grpc-client #tonic #wasm-client #browser #transport-layer #protocols

tonic-web-wasm-client

为浏览器中tonic客户端使用WebAssembly实现grpc-web协议

15个版本

0.6.0 2024年7月28日
0.5.1 2024年2月11日
0.5.0 2023年9月28日
0.4.0 2023年5月4日
0.2.1 2022年7月30日

#37 in WebAssembly

Download history 1446/week @ 2024-04-28 2814/week @ 2024-05-05 2313/week @ 2024-05-12 2969/week @ 2024-05-19 2459/week @ 2024-05-26 1854/week @ 2024-06-02 2535/week @ 2024-06-09 2668/week @ 2024-06-16 3126/week @ 2024-06-23 3586/week @ 2024-06-30 2286/week @ 2024-07-07 2724/week @ 2024-07-14 2116/week @ 2024-07-21 2879/week @ 2024-07-28 2454/week @ 2024-08-04 3910/week @ 2024-08-11

11,468 每月下载量
用于 7 个crate(5个直接使用)

MIT/Apache

40KB
735

tonic-web-wasm-client

Rust实现的grpc-web协议,允许通过WebAssembly在浏览器中使用tonic

用法

要使用tonic-web-wasm-client,您需要将以下内容添加到您的Cargo.toml

[dependencies]
tonic-web-wasm-client = "0.6"

示例

要在浏览器中使用tonic gRPC客户端,请禁用tonic的transport功能编译您的代码(这将禁用tonic的默认传输层)。然后初始化查询客户端如下

use tonic_web_wasm_client::Client;

let base_url = "https://127.0.0.1:9001"; // URL of the gRPC-web server
let query_client = QueryClient::new(Client::new(base_url)); // `QueryClient` is the client generated by tonic

let response = query_client.status().await; // Execute your queries the same way as you do with defaule transport layer

构建

由于tonic-web-wasm-client主要用于在浏览器中使用,使用tonic-web-wasm-client的crate只能为wasm32目标架构构建

cargo build --target wasm32-unknown-unknown

另一种选择是在您的crate仓库中创建一个.cargo/config.toml文件并在其中添加一个构建目标

[build]
target = "wasm32-unknown-unknown"

许可证

根据您的选择,受以下任一许可证的许可

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证的定义,应按照上述方式双许可,而无需任何额外的条款或条件。

依赖关系

~12–16MB
~279K SLoC