All Projects → 4lDO2 → real-async-trait-rs

4lDO2 / real-async-trait-rs

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
A proc macro for real async traits, using nightly-only existential types and generic associated types to work around the need for type erasure

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to real-async-trait-rs

proc-quote
A procedural macro implementation of `quote!`.
Stars: ✭ 22 (-42.11%)
Mutual labels:  proc-macro
f-omega-mu
Fωμ type checker and compiler
Stars: ✭ 46 (+21.05%)
Mutual labels:  higher-kinded-types
maybe-async-rs
A procedure macro to unify SYNC and ASYNC implementation for downstream application/crates
Stars: ✭ 22 (-42.11%)
Mutual labels:  proc-macro
futures-async-stream
Async stream for Rust and the futures crate.
Stars: ✭ 141 (+271.05%)
Mutual labels:  proc-macro
superstruct
Rust library for versioned data types
Stars: ✭ 27 (-28.95%)
Mutual labels:  proc-macro
easy-ext
An attribute macro for easily writing extension trait pattern.
Stars: ✭ 17 (-55.26%)
Mutual labels:  proc-macro
litrs
Parsing and inspecting Rust literals (particularly useful for proc macros)
Stars: ✭ 25 (-34.21%)
Mutual labels:  proc-macro
rust-fsm
Finite state machine framework for Rust with readable specifications
Stars: ✭ 67 (+76.32%)
Mutual labels:  proc-macro
field names
proc-macro for accessing struct field names at runtime
Stars: ✭ 26 (-31.58%)
Mutual labels:  proc-macro
lombok-rs
Lombok port for Rust
Stars: ✭ 31 (-18.42%)
Mutual labels:  proc-macro
reacty yew
Generate Yew components from React components via Typescript type definitions
Stars: ✭ 46 (+21.05%)
Mutual labels:  proc-macro
leibniz
Leibniz equivalence and Liskov substitutability library for Scala.
Stars: ✭ 35 (-7.89%)
Mutual labels:  existential-types
Language Ext
C# functional language extensions - a base class library for functional programming
Stars: ✭ 3,964 (+10331.58%)
Mutual labels:  higher-kinded-types
ocdquery
Over-Complicated Database Query using higher-kinded data
Stars: ✭ 34 (-10.53%)
Mutual labels:  higher-kinded-types

#[real_async_trait]

Build Status Crates.io Documentation

This nightly-only crate provides a proof-of-concept proc macro attribute that allows async functions within traits, without the possible runtime overhead of wrapping everything in a Box and erasing the types. This is made possible thanks to the unstable generic_associated_types and type_alias_impl_trait nightly features.

License

Licensed under either of

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].