#tokio-rustls #tls #tls-stream #async-tls #tls-server #client #fork

async-nats-tokio-rustls-deps

基于 Rustls 的 Tokio 异步 TLS/SSL 流的分支

1 个不稳定版本

0.24.0-ALPHA.12023 年 5 月 23 日

620异步

Download history 477/week @ 2024-03-14 377/week @ 2024-03-21 336/week @ 2024-03-28 525/week @ 2024-04-04 752/week @ 2024-04-11 794/week @ 2024-04-18 501/week @ 2024-04-25 395/week @ 2024-05-02 458/week @ 2024-05-09 465/week @ 2024-05-16 378/week @ 2024-05-23 561/week @ 2024-05-30 630/week @ 2024-06-06 406/week @ 2024-06-13 394/week @ 2024-06-20 434/week @ 2024-06-27

1,987 每月下载量

MIT/Apache

55KB
1.5K SLoC

tokio-rustls

github actions crates license license docs.rs

使用 Rustls 为 Tokio 提供 Rustls 的异步 TLS/SSL 流。

客户端基本结构

use webpki::DNSNameRef;
use tokio_rustls::{ TlsConnector, rustls::ClientConfig };

// ...

let mut config = ClientConfig::new();
config.root_store.add_server_trust_anchors(&webpki_roots::TLS_SERVER_ROOTS);
let config = TlsConnector::from(Arc::new(config));
let dnsname = DNSNameRef::try_from_ascii_str("www.rust-lang.org").unwrap();

let stream = TcpStream::connect(&addr).await?;
let mut stream = config.connect(dnsname, stream).await?;

// ...

客户端示例程序

查看 examples/client. 您可以使用以下命令运行它

cd examples/client
cargo run -- hsts.badssl.com

服务器示例程序

查看 examples/server. 您可以使用以下命令运行它

cd examples/server
cargo run -- 127.0.0.1:8000 --cert mycert.der --key mykey.der

许可 & 来源

本项目受以下任一许可协议的约束

任选其一。

本项目最初是 tokio-tls 的分支。

贡献

除非您明确声明,否则您提交给 tokio-rustls 的任何贡献,根据 Apache-2.0 许可证的定义,都应双许可如上所述,不得附加任何其他条款或条件。

依赖

~9–18MB
~317K SLoC