workflow-websocket

Crates.ioworkflow-websocket
lib.rsworkflow-websocket
version0.18.0
sourcesrc
created_at2022-08-22 10:54:38.284666
updated_at2024-09-07 16:57:10.447148
descriptionWebSocket crate (client and server) providing an async Rust API that functions uniformly in native and in browser (WASM32) environments. This crate allows you to develop WebSocket-driven data exchange that function uniformly in web and desktop applications.
homepage
repositoryhttps://github.com/workflow-rs/workflow-rs
max_upload_size
id650298
size117,376
surinder singh (surinder83singh)

documentation

README

workflow-websocket

Part of the workflow-rs application framework.


github crates.io docs.rs license

Platform-neutral WebSocket Client and native Server.

Features

  • Uniform async Rust WebSocket client API that functions in the browser environment (backed by browser WebSocket class) as well as on native platforms (backed by Tungstenite client).
  • Trait-based WebSocket server API backed by Tungstenite server.

This crate allows you to develop a WebSocket client that will work uniformly in in hte native environment and in-browser.

Workflow-WebSocket crate is currently (as of Q3 2022) one of the few available async Rust client-side in-browser WebSocket implementations.

This web socket crate offers an async message send API as well as provides access to Receiver and Sender async_std channels ([async_channel])(https://docs.rs/async-channel/latest/async_channel/) that can be used to send and receive WebSocket messages asynchronously.

To use workflow-websocket in the Node.js environment, you need to introduce a W3C WebSocket object before loading the WASM32 library to simulate the global WebSocket object available in Web Browsers. The WebSocket NPM module provides W3C WebSocket compatible implementation and can be used as follows:

// WebSocket
globalThis.WebSocket = require('websocket').w3cwebsocket;
// Load WASM32 library ...
Commit count: 513

cargo fmt