#browser #channel #nodejs #macro-derive #bounded-channel #web-apps

workflow-core

Utilities and curated re-exports for async rust native and browser development

34 releases (13 breaking)

new 0.15.0 Jul 26, 2024
0.13.3 Jun 20, 2024
0.11.0 Feb 25, 2024
0.10.2 Dec 24, 2023
0.1.0 Sep 21, 2022

#72 in WebAssembly

Download history 261/week @ 2024-04-05 235/week @ 2024-04-12 733/week @ 2024-04-19 1195/week @ 2024-04-26 439/week @ 2024-05-03 320/week @ 2024-05-10 335/week @ 2024-05-17 322/week @ 2024-05-24 313/week @ 2024-05-31 261/week @ 2024-06-07 1192/week @ 2024-06-14 587/week @ 2024-06-21 652/week @ 2024-06-28 618/week @ 2024-07-05 427/week @ 2024-07-12 555/week @ 2024-07-19

2,300 downloads per month
Used in 62 crates (32 directly)

MIT/Apache

145KB
3K SLoC

workflow-core

Part of the workflow-rs application framework.


github crates.io docs.rs license

Collection of utilities and curated re-exports that are able to operate on native platforms as well as in the WASM32 Web Browser & Node.js environments.

Features

  • #[derive(Describe)] derive macro for enums offering conversion of enums to and from strings as well as associating a custom description attribute with each of the enum values.
  • id module offering a random 64-bit UUID-like base58-encodable identifier representation (useful for DOM element IDs)
  • task module offering async spawn() functionality for async code task execution as well as re-exports following modules:
    • async_std::channel: offering unbounded and bounded channels from async_std
    • channel::oneshot: asias for async_std::channel::bounded(1)
    • triggered: re-export of the Triggered crate
  • async sleep() and yield_now() functions
  • async yield_executor() for higher-level suspension of the browser event loop
  • utility module functions for buffer manipulation

Dependencies

~12–30MB
~426K SLoC