WORKFLOW-RS

github license

WORKFLOW-RS project is designed to provide a unified environment for development of async Rust applications that are able to run in native platforms (desktops and servers), and WASM32 environments such as Web Browsers, Node.js NWJS (Node Webkit) and Electron.

Features

  • Platform neutral crates that are able to function in, or provide abstractions for, running on bare metal (native) as well as inside of a browser, Node.js or NWJS WASM-powered environments.
  • BPF-friendly (Solana OS) environment that allows certain crates when building to the BPF targets.

Crates

WORKFLOW-RS is comprised of the following crates. These crates contain a carefully curated collection of functions and re-exports meant to provide a platform-neutral environment framework for Rust applications.

WORKFLOW-LOG

General-purpose universal application logging functionality.
github crates.io docs.rs

WORKFLOW-CORE

Core utilities used by the Workflow framework. These utilities implement as well as re-export curated implementations that are compatible with WASM32 (browser) async Rust environment.
github crates.io docs.rs

WORKFLOW-WASM

A set of WASM helper modules and utility functions for accessing JavaScript object properties.
github crates.io docs.rs

WORKFLOW-DOM

DOM utilities offering JavaScript injection functionality at runtime, allowing you to load JavaScript into the browser environment at Runtime using Rust. (This allows you to embed JavaScript modules directly into your Rust crates.
github crates.io docs.rs

WORKFLOW-WEBSOCKET

WebSocket crate with async Rust API that functions uniformly in the native environemnt (using Tokio) and within a browser using the native browser WebSockets. This crate is also compatible with Node.js via a W3C WebSocket shim.
github crates.io docs.rs

WORKFLOW-RPC

RPC crate based on top of workflow-websocket offering asynchronous Binary data relay over WebSocket connections using Borsh and JSON serialization (allowing for WebSocket-framed JSON-RPC-like data exchange). This crate is also compatible with Node.js via a W3C WebSocket shim.
github crates.io docs.rs

WORKFLOW-TERMINAL

A unified terminal implementation designed to offer a terminal user interface in a native shell (OS) as well as in-browser. This implementation is helpful for creating and testing crates and APIs that are meant to function in-browser and on native platforms.
github crates.io docs.rs

WORKFLOW-HTML

HTML templating marco offering an easy-to-use runtime html templating against DOM when using async Rust in-browser. This crate is a foundational pillar behind the WORKFLOW-UX crate offering Rust-based DOM-driven UX creation.
github crates.io docs.rs

WORKFLOW-I18N

i18n framework for Workflow-UX applications. This framework offers runtime translation of text based on a phrase-dictionary database.
github crates.io docs.rs

WORKFLOW-STORE

A crate offering a simple platform-neutral file (data) storage but resolving file paths at runtime based on the OS as well as supporting browser local-storage.
github crates.io docs.rs

WORKFLOW-UX

Async Rust + HTML Web Component driven application user interface library.
github crates.io docs.rs

Examples

Examples for workflow-websocket, workflow-rpc and workflow-terminal are available in the main workflow-rs GitHub repository, in the /examples folder.


Contributing

This project is under heavy development. Any contributions, ideas or feedback would be much appreciated.