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.
How to install
ginepro to your dependencies
 # ... = "0.3.0"
The interface remains fairly the same as we implement all the logic for a drop-in replacement for
// Using the `LoadBalancedChannel`. use LoadBalancedChannel; use TesterClient; // Build a load-balanced channel given a service name and a port. let load_balanced_channel = builder .channel .await .expect; // Initialise a new gRPC client for the `Test` service // using the load-balanced channel as transport let grpc_client = new;
For more examples, have a look at the examples directory.