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 网络编程

Download history 4356/week @ 2024-04-28 3103/week @ 2024-05-05 4296/week @ 2024-05-12 3739/week @ 2024-05-19 2875/week @ 2024-05-26 2966/week @ 2024-06-02 3471/week @ 2024-06-09 3520/week @ 2024-06-16 3908/week @ 2024-06-23 3372/week @ 2024-06-30 2938/week @ 2024-07-07 2926/week @ 2024-07-14 2694/week @ 2024-07-21 3863/week @ 2024-07-28 3243/week @ 2024-08-04 4013/week @ 2024-08-11

每月13,905次下载
5 个包中使用 (直接使用4个)

MIT/Apache

27MB
742K SLoC

GNU Style Assembly 218K SLoC // 0.0% comments C++ 186K SLoC // 0.2% comments C 152K SLoC // 0.2% comments Assembly 63K SLoC // 0.0% comments Perl 56K SLoC // 0.1% comments Go 49K SLoC // 0.1% comments Rust 17K SLoC // 0.0% comments Bazel 1K SLoC

tokio-boring

基于BoringSSL构建的Tokio SSL流实现。

文档

用法

首先,将以下内容添加到您的 Cargo.toml

[dependencies]
tokio-boring = "1.0.0"

然后,根据需要使用 acceptconnect

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流都实现了ReadWrite特性,以便与其他futures I/O生态系统交互和互操作。从该包发起的客户端连接会自动验证主机名。

tokio-boring 通过acceptconnect导出此功能。服务器应使用accept,客户端应使用connect。这些增强了基于此包构建的boring包的功能。TLS参数的配置主要通过boring包完成。

许可证

此项目受以下任一许可证的许可

根据您的选择。

贡献

除非您明确声明,否则您向 Serde 有意提交的任何贡献,根据 Apache-2.0 许可证定义,将按照上述方式双重许可,不附加任何额外条款或条件。

赞誉

该项目基于对 tokio-openssl 的分支。

依赖项

约2.5–6.5MB
约109K SLoC