4 releases

0.2.4 Mar 19, 2021
0.2.3 Mar 15, 2021
0.1.0 Mar 14, 2021

#1464 in Development tools

MIT license

23KB
502 lines

mobc-tonic

A connection pool for tonic GRPC client.

Usage:

First, instantiate the implementation for your client:

use mobc_tonic::{
    instantiate_client_pool, ClientConfig, Error, InterceptorFn, Manager, MobcTonicError, Pool,
};
use tonic::transport::{Certificate, Channel, ClientTlsConfig, Identity};

use gen::greeter_client::GreeterClient;

instantiate_client_pool!(GreeterClient<Channel>);

This will generate the connection pool manager for your GRPC client.

Then you could use the generated ClientPool:

let client_config: ClientConfig =
    toml::from_str(include_str!("fixtures/client_with_cert.toml")).unwrap();

let pool = ClientPool::new(client_config);
let mut client = pool.get().await.unwrap();
let reply = client
    .say_hello(HelloRequest {
        name: "Tyr".to_owned(),
    })
    .await
    .unwrap()
    .into_inner();

License

mobc-tonic is distributed under the terms of MIT.

See LICENSE for details.

Copyright 2021 Tyr Chen

Dependencies

~16MB
~376K SLoC