15 releases
0.6.0 | Jul 28, 2024 |
---|---|
0.5.1 | Feb 11, 2024 |
0.5.0 | Sep 28, 2023 |
0.4.0 | May 4, 2023 |
0.2.1 | Jul 30, 2022 |
#32 in WebAssembly
18,909 downloads per month
Used in 17 crates
(8 directly)
42KB
762 lines
tonic-web-wasm-client
Rust implementation of grpc-web
protocol that allows
using tonic
in browsers via webassembly.
Usage
To use tonic-web-wasm-client
, you need to add the following to your Cargo.toml
:
[dependencies]
tonic-web-wasm-client = "0.6"
Example
To use tonic
gRPC clients in browser, compile your code with tonic's transport
feature disabled (this will disable
the default transport layer of tonic). Then initialize the query client as follows:
use tonic_web_wasm_client::Client;
let base_url = "http://localhost: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
Building
Since tonic-web-wasm-client
is primarily intended for use in browsers, a crate that uses tonic-web-wasm-client
can only be built for wasm32
target architectures:
cargo build --target wasm32-unknown-unknown
Other option is to create a .cargo/config.toml
in your crate repository and add a build target there:
[build]
target = "wasm32-unknown-unknown"
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~17–23MB
~332K SLoC