|0.2.0||Jul 9, 2021|
|0.1.5||Jun 9, 2021|
|0.1.4||May 14, 2021|
#111 in Asynchronous
695 downloads per month
ginepro provides client-side gRPC load-balancing out of the box by enriching
tonic ‘s channel with periodic service discovery.
ginepro enriches tonic by periodcally updating the list of
servers that are available through a
ServiceDiscovery interface that currently is implemented for DNS.
ginepro to your dependencies
[dependencies] # ... ginepro = "0.1.0"
The interface remains fairly the same as we implement all the logic for a drop-in replacement for
// Using the `LoadBalancedChannel`. use ginepro::LoadBalancedChannel; use ginepro::pb::tester_client::TesterClient; // Build a load-balanced channel given a service name and a port. let load_balanced_channel = LoadBalancedChannel::builder( ("my_hostname", 5000) ) .await .expect("Failed to initialise the DNS resolver.") .channel(); // Initialise a new gRPC client for the `Test` service // using the load-balanced channel as transport let grpc_client = TesterClient::new(load_balanced_channel);
For more examples, have a look at the examples directory.Apache License, Version 2.0 or MIT license 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.