ginepro
ginepro provides client-side gRPC load-balancing out of the box by enriching tonic ‘s channel with periodic service discovery.
Overview
ginepro enriches tonic by periodically updating the list of
servers that are available through a ServiceDiscovery interface that currently is implemented for DNS.
How to install
Add ginepro to your dependencies
cargo add ginepro
Getting started
The interface remains fairly the same as we implement all the logic for a drop-in replacement for
tonic's Channel.
// 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.