1个不稳定版本

0.11.0 2024年5月7日

#814 in 加密学

Download history 119/week @ 2024-05-04 43/week @ 2024-05-11 67/week @ 2024-05-18 123/week @ 2024-05-25 85/week @ 2024-06-01 130/week @ 2024-06-08 228/week @ 2024-06-15 98/week @ 2024-06-22 92/week @ 2024-06-29 111/week @ 2024-07-06 172/week @ 2024-07-13 138/week @ 2024-07-20 72/week @ 2024-07-27 100/week @ 2024-08-03 107/week @ 2024-08-10

453 每月下载量
10 个crate中使用了 (8 个直接使用)

MIT/Apache

68KB
1.5K SLoC

tls-api-2

这是基于tls-api的分支,具有更新的依赖项。

与实现无关的通用分母TLS API。

使用此crate可以独立于实际的TLS实现编写与TLS一起工作的库,并且库的用户可以填充实际类型实现。

此crate只提供接口:接受者和连接器。

Tokio或async-std

此crate(及其依赖的tls-api-* crate)有两个互斥特性

  • runtime-tokio 实现了基于tokio的API
  • runtime-async-std 实现了基于async-std的API

静态或动态

API提供静态或动态版本。

tls_api::TlsAcceptortls_api::TlsConnector 类型是 Sized,每个使用它们的函数或结构都需要通过这些类型进行参数化,例如

async fn create_listener<C: tls_api::TlsAcceptor>()
    -> anyhow::Result<tls_api::TlsStream<async_std::net::TcpStream>>
{ ... }

或者,还有函数的动态分派版本:tls_api::TlsAcceptorTypetls_api::TlsConnectorType。这些类型不是可量化的。可以这样使用

async fn create_listener(acceptor: &tls_api::TlsAcceptorType)
    -> anyhow::Result<tls_api::TslStreamBox>
{ ... }

注意,create_listener 没有类型参数,这使编码稍微容易一些,但代价是性能略有下降。

依赖项

~2–13MB
~163K SLoC