1个不稳定版本
0.11.0 | 2024年5月7日 |
---|
#814 in 加密学
453 每月下载量
在 10 个crate中使用了 (8 个直接使用)
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的APIruntime-async-std
实现了基于async-std的API
静态或动态
API提供静态或动态版本。
tls_api::TlsAcceptor
和 tls_api::TlsConnector
类型是 Sized
,每个使用它们的函数或结构都需要通过这些类型进行参数化,例如
async fn create_listener<C: tls_api::TlsAcceptor>()
-> anyhow::Result<tls_api::TlsStream<async_std::net::TcpStream>>
{ ... }
或者,还有函数的动态分派版本:tls_api::TlsAcceptorType
和 tls_api::TlsConnectorType
。这些类型不是可量化的。可以这样使用
async fn create_listener(acceptor: &tls_api::TlsAcceptorType)
-> anyhow::Result<tls_api::TslStreamBox>
{ ... }
注意,create_listener
没有类型参数,这使编码稍微容易一些,但代价是性能略有下降。
依赖项
~2–13MB
~163K SLoC