dtolnay/async-trait
Type erasure for async trait methods observed · 2026-08-28
Health v2 · maintenance only
98/100
- Activity 99
- Release rhythm 96
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 25
- age_days: 2599
- days_rel: 25
- days_push: 8
- n_releases_24m: 10
Adoption not part of the score
2186 stars · 101 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
A Rust attribute macro crate that makes async functions in traits work with dyn Trait (dynamic dispatch) via type erasure. It bridges the gap left by Rust 1.75's native async fn in traits, which does not support dyn compatibility.
Use cases
- use async fn in traits with Box<dyn Trait>
- make async trait methods dyn compatible
- store heterogeneous async trait objects in a Vec
- avoid 'trait is not dyn compatible' errors for async methods
- write async trait impls that work across Rust versions
When to choose
- you need dyn Trait with async trait methods
- you must support Rust versions older than 1.75
- you want boxed async trait objects in collections
When to avoid
- you only need static dispatch of async trait methods (use native async fn in traits)
- you can use the built-in dyn-compatible alternatives in modern Rust
Facets
library · maturity stable
type-system concurrency developer-tools programming-languages developer-tools rust cross-platform async proc-macro dyn-trait attribute-macro rust algorithms
2 sources
- readme: https://github.com/dtolnay/async-trait · fetched 2026-08-28 · c1dda26b0039
- registry_crates: https://crates.io/api/v1/crates/async-trait · fetched 2026-08-29 · 2b8a8139e15e
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| dtolnay/async-trait | main | 98 |
For agents
markdown · JSON · MCP: product_card(name="dtolnay/async-trait")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem