1 个发布版本 (0 个不稳定)
4.9.7-1 | 2024年8月10日 |
---|
#2 in #accept
268 每月下载量
在 hyper-boring-patch 中使用
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提供的功能。TLS参数的配置主要通过boring
crate进行。
许可证
本项目采用以下任一许可证:
- Apache许可证2.0版本,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则您根据Apache-2.0许可证定义的、有意提交给Serde的任何贡献,都将按照上述方式双许可,不附加任何额外条款或条件。
赞誉
该项目基于对tokio-openssl的分支。
依赖项
~9–13MB
~380K SLoC