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
Future
s (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.