1 //! Generic client implementation.
2 //!
3 //! This module contains the low level components to build a gRPC client. It
4 //! provides a codec agnostic gRPC client dispatcher and a decorated tower
5 //! service trait.
6 //!
7 //! This client is generally used by some code generation tool to provide stubs
8 //! for the gRPC service. Thusly, they are a bit cumbersome to use by hand.
9 //!
10 //! ## Concurrent usage
11 //!
12 //! Upon using the your generated client, you will discover all the functions
13 //! corresponding to your rpc methods take `&mut self`, making concurrent
14 //! usage of the client difficult. The answer is simply to clone the client,
15 //! which is cheap as all client instances will share the same channel for
16 //! communication. For more details, see
17 //! [transport::Channel](../transport/struct.Channel.html#multiplexing-requests).
18 
19 mod grpc;
20 mod service;
21 
22 pub use self::grpc::Grpc;
23 pub use self::service::GrpcService;
24