3 个版本 (重大更新)

0.3.0 2022 年 6 月 21 日
0.2.0 2021 年 3 月 12 日
0.1.0 2020 年 10 月 28 日

#737 in 异步

Download history 48/week @ 2024-03-29 16/week @ 2024-04-05

每月 175 次下载

MIT/Apache

48KB
1K SLoC

async-tls

使用 Rustls 实现 Async TLS/SSL 流。


特性

async-tls 可在服务器和客户端程序中使用。为了节省编译时间,您可以关闭部分功能以加快编译时间。

如果只想在客户端使用 async-tls,请禁用默认功能并使用 "client" 功能。

[dependencies.async-tls]
version = "0.8"
default-features = false
features = ["client"]

如果只想在服务器端使用 async-tls,请禁用默认功能并使用 "server" 功能。

[dependencies.async-tls]
version = "0.8"
default-features = false
features = ["server"]

简单客户端

use async_tls::TlsConnector;
use async_std::net::TcpStream;

// ...

let tcp_stream = TcpStream::connect("rust-lang.org:443").await?;
let connector = TlsConnector::default();
let mut tls_stream = connector.connect("www.rust-lang.org", tcp_stream).await?;

// ...

客户端示例程序

examples/client。您可以运行它,如下所示:

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

服务器示例程序

examples/server。您可以运行它,如下所示:

cd examples/server
cargo run -- 127.0.0.1:8080 --cert ../../tests/end.cert --key ../../tests/end.rsa

并将客户端指向它

cd examples/client
cargo run -- 127.0.0.1 --port 8080 --domain localhost --cafile ../../tests/end.chain

注意:请勿在任何地方使用这些证书文件,除了测试之外!

安全性

此存储库使用 #![deny(unsafe_code)] 来确保所有内容都在 100% 安全的 Rust 中实现。

许可证和来源

本项目采用以下任一许可证:

任你选择。

这原本是 tokio-rustls 的一个分支。

贡献

除非你明确声明,否则根据 Apache-2.0 许可证定义,你有意提交给 async-tls 的任何贡献都应按上述方式双许可,不附加任何额外的条款或条件。

依赖

~7–16MB
~296K SLoC