28个稳定版本 (3个主要版本)
4.9.1 | 2024年8月4日 |
---|---|
4.8.0 | 2024年7月5日 |
4.5.0 | 2024年2月8日 |
4.2.0 | 2023年12月14日 |
1.0.2 | 2020年11月12日 |
#1123 in 网络编程
每月13,905次下载
在 5 个包中使用 (直接使用4个)
27MB
742K SLoC
tokio-boring
基于BoringSSL构建的Tokio SSL流实现。
用法
首先,将以下内容添加到您的 Cargo.toml
[dependencies]
tokio-boring = "1.0.0"
然后,根据需要使用 accept
或 connect
。
use boring::ssl;
use tokio::net::TcpListener;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let listener = TcpListener::bind("127.0.0.1:8080").await?;
let (tcp_stream, _addr) = listener.accept().await?;
let server = ssl::SslMethod::tls_server();
let mut ssl_builder = boring::ssl::SslAcceptor::mozilla_modern(server)?;
ssl_builder.set_default_verify_paths()?;
ssl_builder.set_verify(ssl::SslVerifyMode::PEER);
let acceptor = ssl_builder.build();
let _ssl_stream = tokio_boring::accept(&acceptor, tcp_stream).await?;
Ok(())
}
该库使用BoringSSL实现TLS流,用于协商连接。每个TLS流都实现了Read
和Write
特性,以便与其他futures I/O生态系统交互和互操作。从该包发起的客户端连接会自动验证主机名。
tokio-boring
通过accept
和connect
导出此功能。服务器应使用accept
,客户端应使用connect
。这些增强了基于此包构建的boring
包的功能。TLS参数的配置主要通过boring
包完成。
许可证
此项目受以下任一许可证的许可
- Apache许可证第2版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- 麻省理工学院许可协议(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的选择。
贡献
除非您明确声明,否则您向 Serde 有意提交的任何贡献,根据 Apache-2.0 许可证定义,将按照上述方式双重许可,不附加任何额外条款或条件。
赞誉
该项目基于对 tokio-openssl 的分支。
依赖项
约2.5–6.5MB
约109K SLoC