Pasts
Minimal and simpler alternative to the futures crate.
About | Source | Changelog | Tutorial
About
- No required std / alloc
- No macros at all (
pin_mut!(),select!()andjoin!()implemented as traits with safe APIs:DynFut::fut(),Select::select()¹ andJoin::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
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- Zlib License, (LICENSE-ZLIB or https://opensource.org/licenses/Zlib) at your option.
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.