#async-std #async-await #native-tls #tokio #io #web

ng-async-tungstenite

NextGraph.org 的 async-tungstenite 的分支

1 个不稳定版本

0.22.2 2024 年 5 月 22 日

#161WebSocket

MIT 许可证

95KB
2K SLoC

async-tungstenite

async-std, tokio, gio 和任何 std Future 运行时提供异步 WebSocket。

MIT licensed Crates.io Build Status

文档

使用方法

在您的 Cargo.toml 中添加此内容

[dependencies]
async-tungstenite = "*"

查看 examples/ 目录以获取客户端和服务器示例。如果您不熟悉 async-stdtokio,您可能需要熟悉它们。

什么是 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