#browser #async-api #server-api #data-exchange #rpc #client-server

workflow-websocket

WebSocket包(客户端和服务器),提供在原生环境和浏览器(WASM32)环境中统一运行的异步Rust API。此包允许您开发在Web和桌面应用中都能统一运行的WebSocket驱动的数据交换。

37个版本 (14个重大更新)

新版本 0.17.0 2024年8月19日
0.15.0 2024年7月26日
0.14.1 2024年7月22日
0.11.0 2024年2月25日
0.1.2 2022年9月21日

#49 in WebSocket

Download history 354/week @ 2024-05-01 206/week @ 2024-05-08 239/week @ 2024-05-15 196/week @ 2024-05-22 217/week @ 2024-05-29 180/week @ 2024-06-05 766/week @ 2024-06-12 652/week @ 2024-06-19 555/week @ 2024-06-26 461/week @ 2024-07-03 486/week @ 2024-07-10 451/week @ 2024-07-17 651/week @ 2024-07-24 549/week @ 2024-07-31 290/week @ 2024-08-07 353/week @ 2024-08-14

1,958 每月下载量
用于 17 个包 (直接使用2个)

MIT/Apache

345KB
7K SLoC

workflow-websocket

workflow-rs应用框架的一部分。


github crates.io docs.rs license

平台中立的WebSocket客户端和本地服务器。

特性

  • 统一的异步Rust WebSocket客户端API,在浏览器环境中(由浏览器WebSocket类支持)以及原生平台上(由Tungstenite客户端支持)运行。
  • 基于特质的WebSocket服务器API,由Tungstenite服务器支持。

此包允许您开发一个在本地环境和浏览器中都能统一运行的WebSocket客户端。

截至2022年第三季度,Workflow-WebSocket包是目前可用的少数异步Rust客户端WebSocket实现之一。

此WebSocket包提供异步消息发送API,并提供对ReceiverSender异步std通道的访问([async_channel])(https://docs.rs/async-channel/latest/async_channel/),可用于异步发送和接收WebSocket消息。

要在Node.js环境中使用workflow-websocket,您需要在加载WASM32库之前引入W3C WebSocket对象,以模拟在Web浏览器中可用的全局WebSocket对象。提供W3C WebSocket兼容实现的WebSocket NPM模块可以如下使用

// WebSocket
globalThis.WebSocket = require('websocket').w3cwebsocket;
// Load WASM32 library ...

依赖

~18–34MB
~550K SLoC