1个不稳定版本
0.12.0 | 2023年11月7日 |
---|
在异步分类中排名第1307
每月下载量392次
在9个crates中使用(直接使用2个)
49KB
1K SLoC
async-tls
维护通知
我,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。
许可证与来源
该项目受以下任一许可证的许可:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
该项目最初是tokio-rustls的分支。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义,您提交给async-tls的任何贡献,将双重许可如上所述,没有任何额外的条款或条件。
依赖关系
~7–16MB
~279K SLoC