Pasts - A No-Std Compatible Async Runtime

71 points AldaronLau

I just released a new version of pasts (v0.11.0), a single-threaded no-std compatible async runtime without macros, dependencies (except wasm-bindgen-futures for targeting the web), or unsafe code. Pasts doesn't aim to have networking or file I/O built-in like tokio or async-std, and its main target is to be used in embedded systems, GUI applications, and video games as opposed to focusing on web servers.

The new version brings some nice improvements:

  • You can now have pasts automatically build you an executor by implementing the Wake trait from the standard library, plus pasts' Sleep trait.
  • Combining futures with the Join struct is now more powerful. Essentially, you can use the builder pattern instead of the select!() and join!() macros, plus you get lock-free data sharing.
  • A new flexible Notifier trait for asynchronous events that abstracts over both fused futures and asynchronous iterators/streams.

Links:

If you use it, let me know what you think. This new version should help me finally get new versions out of the stick crate (for asynchronous joystick interface) and the wavy crate (for asynchronous real-time audio) after feeling burnout on the projects for a couple years. I'm hoping to make less changes to the API after this release and plan for version 1.0.0, but we'll see how that goes.