tonic-tls

Crates.iotonic-tls
lib.rstonic-tls
version0.6.0
created_at2024-11-27 05:15:48.722368+00
updated_at2025-08-11 05:24:21.298306+00
descriptionTls wrappers for tonic.
homepage
repositoryhttps://github.com/youyuanwu/tonic-tls
max_upload_size
id1462678
size92,796
(youyuanwu)

documentation

https://docs.rs/tonic-tls/latest/tonic_tls/

README

tonic-tls

ci License: MIT Crates.io Documentation codecov

tonic-tls provides various tls backend plugins for grpc crate tonic.

Get Started

Add to Cargo.toml of your project. Choose openssl backend:

tonic-tls = { version="*" , default-features = false, features = ["openssl"] }
# change features to "rustls" etc to enable other backends.

Examples

For full examples see examples

// Server example for openssl:
use openssl::ssl::SslAcceptor;
use tonic_tls::openssl::TlsIncoming;
let addr = "127.0.0.1:1322".parse().unwrap();
let inc = TlsIncoming::new(TcpIncoming::bind(addr).unwrap(), acceptor);
Server::builder()
   .add_service(some_service)
   .serve_with_incoming(inc);
// client example for openssl:
async fn connect_tonic_channel(
    endpoint: tonic::transport::Endpoint,
    ssl_conn: openssl::ssl::SslConnector
) -> tonic::transport::Channel {
    endpoint.connect_with_connector(tonic_tls::openssl::TlsConnector::new(
        &endpoint,
        ssl_conn,
       "localhost".to_string(),
    )).await.unwrap()
}

License

This project is licensed under the MIT license.

Commit count: 28

cargo fmt