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