#async-tls #tls-stream #rustls #client #server-client #default #parts

veilid-async-tls

使用Rustls实现异步TLS/SSL流

1个不稳定版本

0.12.0 2023年11月7日

异步分类中排名第1307

Download history 211/week @ 2024-03-28 82/week @ 2024-04-04 57/week @ 2024-04-11 104/week @ 2024-04-18 167/week @ 2024-04-25 224/week @ 2024-05-02 48/week @ 2024-05-09 118/week @ 2024-05-16 52/week @ 2024-05-23 65/week @ 2024-05-30 223/week @ 2024-06-06 104/week @ 2024-06-13 102/week @ 2024-06-20 59/week @ 2024-06-27 96/week @ 2024-07-04 130/week @ 2024-07-11

每月下载量392
9个crates中使用(直接使用2个)

MIT/Apache

49KB
1K SLoC

async-tls

使用Rustls实现异步TLS/SSL流。


维护通知

我,Florian Gilcher,目前是async-tls的主要维护者。由于工作量较大,我希望将维护工作转交给其他人,这个人需要与async-tls的总体愿景保持一致。

  • 运行时独立性
  • 后端独立性(目前未实现)
  • 专注于基于使用场景的配置,而不是暴露所有配置

我期望申请维护者的人最初至少投入每周4小时的时间,因此建议首先获得企业支持。这个数字不是硬性要求,但我希望这个过程能提高维护质量。我很乐意有多名维护者。

我承诺在前两个月每周提供30分钟的反馈 - 在移交初期更多。

如果您感兴趣,请通过电子邮件联系我。

功能

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 veilid_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

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

安全性

此crate使用#![deny(unsafe_code)]来确保所有内容都是100%安全地实现Rust。

许可证与来源

该项目受以下任一许可证的许可:

由您选择。

该项目最初是tokio-rustls的分支。

贡献

除非您明确说明,否则根据Apache-2.0许可证定义,您提交给async-tls的任何贡献,将双重许可如上所述,没有任何额外的条款或条件。

依赖关系

~7–16MB
~279K SLoC