33个版本 (8个重大更新)
0.9.0 | 2022年4月28日 |
---|---|
0.7.0 | 2021年10月26日 |
0.5.0 | 2021年2月21日 |
0.4.0 | 2020年5月17日 |
0.1.8 | 2017年6月17日 |
#2 在 #tls-acceptor
每月下载量 30,545
用于 40 个crate (25直接)
66KB
1.5K SLoC
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
没有类型参数,这使得编码稍微容易一些,但以性能略有下降为代价。
依赖项
~10–22MB
~415K SLoC