#native-tls #async-std #future #tokio #secure #openssl #platform

async-native-tls-2

使用 futures 的原生 TLS

2 个版本

0.5.1 2024 年 7 月 24 日
0.5.0 2024 年 7 月 24 日

#410异步

Download history 203/week @ 2024-07-20 53/week @ 2024-07-27 1/week @ 2024-08-03

每月 257 次下载

MIT/Apache

36KB
571

async-native-tls

异步原生 TLS


原生 TLS 用于 async-stdtokio

此包在 Windows 上使用 SChannel(通过 schannel),在 MacOS 上使用 Secure Transport(通过 security-framework),在其他所有平台上使用 OpenSSL(通过 openssl)。

安装

$ cargo add async-native-tls

Cargo 特性标志

  • runtime-async-std(默认开启):使用 async-std 运行时。

  • runtime-tokio:使用 tokio 运行时。此选项与 runtime-async-std 互斥。

示例

async-std

需要 runtime-async-std 特性(默认开启)。

# Cargo.toml
[dependencies]
async-native-tls = "0.4"
use async_std::prelude::*;
use async_std::net::TcpStream;

let stream = TcpStream::connect("google.com:443").await?;
let mut stream = async_native_tls::connect("google.com", stream).await?;
stream.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;

let mut res = Vec::new();
stream.read_to_end(&mut res).await?;
println!("{}", String::from_utf8_lossy(&res));

tokio

需要 runtime-tokio 特性。

# Cargo.toml
[dependencies]
async-native-tls = { version = "0.4", default-features = false, features = [ "runtime-tokio" ] }
use tokio::prelude::*;
use tokio::net::TcpStream;

let stream = TcpStream::connect("google.com:443").await?;
let mut stream = async_native_tls::connect("google.com", stream).await?;
stream.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;

let mut res = Vec::new();
stream.read_to_end(&mut res).await?;
println!("{}", String::from_utf8_lossy(&res));

贡献

想要加入我们吗?查看我们的 "贡献" 指南 并查看以下一些问题

许可证

根据您的选择,受 Apache 许可证 2.0 版MIT 许可证 许可。
除非您明确表示,否则您提交的任何有意包含在此软件包中的贡献,根据 Apache-2.0 许可证的定义,应按照上述方式双重许可,而无需附加任何其他条款或条件。

依赖关系

~1–13MB
~188K SLoC