1 个稳定版本
新版本 4.9.1 | 2024 年 8 月 12 日 |
---|
#1427 在 网络编程
1,000 每月下载量
在 2 crates 中使用
16MB
462K 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 生态系统中的其他部分进行交互和互操作。从该 crate 启动的客户端连接将自动验证主机名(默认行为)。
tokio-boring
通过 accept
和 connect
导出此功能。服务器应使用 accept
,客户端应使用 connect
。这些扩展了该 crate 所依赖的 boring
crate 的功能。
许可证
该项目受以下任一许可证的许可:
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任您选择。
贡献
除非您明确声明,否则您提交给Serde(根据Apache-2.0许可证定义)的任何有意贡献,都将双授权,如上所述,没有任何附加条款或条件。
赞誉
该项目基于对tokio-openssl的分支。
依赖项
~2.5–6.5MB
~108K SLoC