3 个版本 (重大更新)
0.3.0 | 2022 年 6 月 21 日 |
---|---|
0.2.0 | 2021 年 3 月 12 日 |
0.1.0 | 2020 年 10 月 28 日 |
#737 in 异步
每月 175 次下载
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 中实现。
许可证和来源
本项目采用以下任一许可证:
- Apache许可证,版本2.0(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任你选择。
这原本是 tokio-rustls 的一个分支。
贡献
除非你明确声明,否则根据 Apache-2.0 许可证定义,你有意提交给 async-tls 的任何贡献都应按上述方式双许可,不附加任何额外的条款或条件。
依赖
~7–16MB
~296K SLoC