This commit reworks TLS configuration of both servers and endpoints in order to provide a more flexible API. We now add options to configure the selected TLS library using the appropriate 'native' configuration structures, as well as retaining the existing simplier interface which is compatible with both. The new API can also be easily extended to support simple interfaces for configuring mTLS and a range of other options without creating sprawl in the builders for `Server` and `Endpoint`.
Examples
Set of examples that show off the features provided by tonic.
Helloworld
Client
$ cargo run --bin helloworld-client
Server
$ cargo run --bin helloworld-server
RouteGuide
Client
$ cargo run --bin routeguide-client
Server
$ cargo run --bin routeguide-server
Authentication
Client
$ cargo run --bin authentication-client
Server
$ cargo run --bin authentication-server
Load balance
Client
$ cargo run --bin load-balance-client
Server
$ cargo run --bin load-balance-server
TLS (rustls)
Client
$ cargo run --bin tls-client
Server
$ cargo run --bin tls-server
Notes:
If you are using the codegen feature, then the following dependencies are
required: