Rust implementation of grpc-web protocol that allows using tonic in browsers via webassembly.
To use tonic-web-wasm-client, you need to add the following to your Cargo.toml:
[dependencies] tonic-web-wasm-client = "0.8"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 layerSince 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-unknownOther option is to create a .cargo/config.toml in your crate repository and add a build target there:
[build] target = "wasm32-unknown-unknown"This library allows you to set a custom Accept header for the requests. This can be useful if you need to specify a different content type for the responses. But, be aware that if you set a custom Accept header, the client may not be able to handle the response correctly.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
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.