pasts 0.5.0

Minimal and simpler alternative to the futures crate.
Documentation

Pasts

Minimal and simpler alternative to the futures crate.

tests docs crates.io

About | Source | Changelog | Tutorial

About

  • No required std / alloc
  • No macros at all (pin_mut!(), select!() and join!() implemented as traits with safe APIs: DynFut::fut(), Select::select()¹ and Join::join())
  • No slow compiling proc macros (fast compile times)
  • No dependencies
  • No cost (True zero-cost abstractions!)
  • No pain (API super easy to learn & use!)
  • No unsafe code left for you to write for working with Futures (ability to #[forbid(unsafe_code)])

Check out the documentation for examples.

Supported Platforms

Pasts targets all platforms that can run Rust. The execute() executor works on the following platforms (needs std):

  • All platforms that support threading (includes all tier 1 and some tier 2, 3)
  • Web Assembly In Browser (Tier 2)

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

  • ¹pasts' select() is very different from futures' select!(), as it is not designed to handle arbitrary control flow.