3 unstable releases

0.2.1 Dec 4, 2024
0.2.0 Nov 29, 2024
0.1.0 Nov 27, 2024

#1551 in Network programming

Download history 20/week @ 2024-12-08 57/week @ 2024-12-15 6/week @ 2024-12-29 93/week @ 2025-01-05 68/week @ 2025-01-12 142/week @ 2025-01-19 127/week @ 2025-01-26 565/week @ 2025-02-02 487/week @ 2025-02-09 109/week @ 2025-02-16 197/week @ 2025-02-23 135/week @ 2025-03-02 189/week @ 2025-03-09 512/week @ 2025-03-16 290/week @ 2025-03-23

1,126 downloads per month
Used in 4 crates (via agp-config)

MIT license

42KB
772 lines

tonic-tls

ci License: MIT Crates.io Documentation

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:
async fn run_openssl_tonic_server(
    tcp_s: tonic::transport::server::TcpIncoming,
    tls_acceptor: openssl::ssl::SslAcceptor,
) {
let incoming = tonic_tls::openssl::incoming(tcp_s, tls_acceptor);
let greeter = Greeter {};
tonic::transport::Server::builder()
    .add_service(helloworld::greeter_server::GreeterServer::new(greeter))
    .serve_with_incoming(incoming)
    .await
    .unwrap();
}
// client example for openssl:
async fn connect_tonic_channel(ssl_conn: openssl::ssl::SslConnector) {
    let ch: tonic::transport::Channel= tonic_tls::new_endpoint()
        .connect_with_connector(tonic_tls::openssl::connector(
            "https://localhost:12345".parse().unwrap(),
            ssl_conn,
            "localhost".to_string(),
        ))
        .await.unwrap();
}

License

This project is licensed under the MIT license.

Dependencies

~17–32MB
~498K SLoC