## `workflow-websocket` Part of the [`workflow-rs`](https://github.com/workflow-rs) application framework. *** [github](https://github.com/workflow-rs/workflow-websocket) [crates.io](https://crates.io/crates/workflow-websocket) [docs.rs](https://docs.rs/workflow-websocket) 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](https://crates.io/crates/async-tungstenite) client). * Trait-based WebSocket server API backed by [Tungstenite](https://crates.io/crates/async-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](https://docs.rs/async-channel/latest/async_channel/struct.Receiver.html) and [Sender](https://docs.rs/async-channel/latest/async_channel/struct.Sender.html) 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](https://www.npmjs.com/package/websocket) NPM module provides W3C WebSocket compatible implementation and can be used as follows: ``` // WebSocket globalThis.WebSocket = require('websocket').w3cwebsocket; // Load WASM32 library ... ```