1 个不稳定版本
| 0.22.2 | 2024 年 5 月 22 日 |
|---|
#161 在 WebSocket
95KB
2K SLoC
async-tungstenite
为 async-std, tokio, gio 和任何 std Future 运行时提供异步 WebSocket。
使用方法
在您的 Cargo.toml 中添加此内容
[dependencies]
async-tungstenite = "*"
查看 examples/ 目录以获取客户端和服务器示例。如果您不熟悉 async-std 或 tokio,您可能需要熟悉它们。
什么是 async-tungstenite?
此 crate 基于 Rust WebSocket 库 tungstenite,并为其提供异步绑定和包装,因此您可以使用它与非阻塞/异步的 TcpStream,并将其与其他异步堆栈中的 crate 相结合。此外,可以通过功能标志启用与各种其他 crate 的可选集成
async-tls:启用async_tls模块,它提供与 async-tls TLS 堆栈的集成,并且可以独立于任何异步运行时使用。async-std-runtime:启用async_std模块,它提供与 async-std 运行时的集成。async-native-tls:启用async_std模块中实现 TLS 的附加功能,通过 async-native-tls。tokio-runtime:启用tokio模块,它提供与 tokio 运行时的集成。tokio-native-tls:启用tokio模块中实现 TLS 的附加功能,通过 tokio-native-tls。tokio-rustls-native-certs:启用tokio模块中实现 TLS 的附加功能,通过 tokio-rustls 并使用 rustls-native-certs 找到的本地系统证书。tokio-rustls-webpki-roots:启用在tokio模块中通过tokio-rustls实现TLS的附加功能,并使用webpki-roots提供的证书。gio-runtime:启用gio模块,该模块提供与gio运行时的集成。
消息与流
WebSocket提供了一种面向消息的协议,此crate支持通过消息发送和接收数据;基于WebSocket构建的协议允许使消息边界在语义上变得重要。然而,一些WebSocket用户可能希望将套接字视为一个连续的字节流。如果您知道发送端不关注消息边界,并且您希望在忽略这些边界的情况下处理字节流,请尝试基于此crate构建的ws_stream_tungstenite。
tokio-tungstenite
最初,这个crate是作为tokio-tungstenite的分支创建的,并将其移植到futures crate的特性和功能之上。在此基础上,增加了与async-std、tokio和gio的集成。
依赖项
~2–18MB
~264K SLoC