Some more derive(Trait) options
2.1k
Stars
148
Forks
88
Open issues
30
Contributors
AI Analysis
derive_more is a Rust procedural macro library that eliminates boilerplate by deriving common standard traits (Add, Display, From, Into, etc.) for custom structs and enums. It is purpose-built for the newtype pattern and wrapper types, enabling developers to avoid manually implementing traits that would otherwise be tedious but straightforward—benefiting any Rust developer working with simple newtypes or wrapper types, though it is not for complex trait implementations or projects that need f...
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Rust proc-macro library that derives boilerplate for common traits—stable maintenance, narrow but reliable niche.
derive_more is a Rust procedural macro crate that automatically generates implementations of standard library traits (Add, Display, From, Into, Deref, etc.) for user-defined structs and enums, eliminating repetitive boilerplate. It targets Rust developers building libraries and applications who use the newtype pattern or want operator overloading without manual trait implementation. Adoption appears concentrated in the Rust ecosystem as a developer productivity tool rather than a runtime-critical dependency.
Created in 2016 as a response to Rust's trait-heavy API design and the verbosity of manual trait implementations. The project grew organically within the Rust community and has remained maintained with periodic updates. It reflects a practical pain point in Rust development: the tension between Rust's zero-cost abstractions and the boilerplate required to wrap types.
Stars accumulated steadily from 2016 to 2024 (reaching ~2,100), then plateaued; only 3 stars added in the past 7 days (as of 2026-07-04). Growth appears mature/stable rather than accelerating. No evidence of viral adoption waves. The project serves a defined use case that does not require exponential growth to remain valuable.
Adoption not verified through explicit case studies or public testimonials in README. Presence on crates.io and docs.rs indicates available as a dependency. 2,118 stars and 148 forks suggest some level of community interest, but stars alone do not confirm production usage. README examples are illustrative, not testimonial. Lack of downstream project visibility in public discussions.
Procedural macro crate using `syn` and `quote` for AST manipulation (implied by peers like thiserror, proc-macro-workshop). Likely generates trait implementations via token-level code generation. README explicitly lists 30+ derivable traits across conversion, formatting, error-handling, and operator categories. Appears to use attribute macros for customization (e.g., `#[display("...")]` shown in examples).
Not documented in README. Build status badge present (CI via GitHub Actions), suggesting tests exist, but coverage metrics and test count not disclosed.
Last push 2026-06-19 (15 days before evaluation date). Active CI badge. Requires Rust 1.81+, indicating ongoing compatibility maintenance. No evidence of inactivity, but low weekly star growth suggests incremental, not accelerated, activity. Appears to be slow-burn maintenance: not abandoned, not ramping.
ADOPT IF: You write Rust code using newtypes, operator overloading, or type conversions and want to eliminate boilerplate trait implementations. The crate is stable, well-documented, actively maintained, and reduces real developer friction. AVOID IF: You need cutting-edge proc-macro features or experimental Rust unstable features; this crate targets stable Rust and conservative derive patterns. You also may not need it if your types are simple enough that manual implementations are clearer. MONITOR IF: You rely on it in a production library and want to track API changes; the slow growth rate suggests low velocity in new feature development, which may be intentional design (focused scope) rather than abandonment.
Independent dimensions
Mainstream potential
4/10
Technical importance
6/10
Adoption evidence
3/10
- Slow development velocity: 3 stars in 7 days and limited recent commits suggest low contributor activity. If a critical bug emerges, response time may lag behind high-velocity projects.
- Proc-macro complexity: Procedural macros are notoriously difficult to debug and maintain. Without access to the source code, we cannot verify implementation rigor or edge-case handling.
- Dependency lock-in: Projects that heavily use derive_more for operator overloading may face difficulty refactoring if the library stops being maintained, since trait implementations become scattered across generated code.
- Rust version churn: Requires Rust 1.81+. Future breaking changes in Rust's proc-macro API could require maintenance effort; no evidence of a large maintainer team to absorb that burden.
- Limited real-world adoption evidence: No public examples of large-scale production use disclosed. Adoption may be wider than apparent, but unverified high-profile projects would strengthen confidence.
derive_more will likely remain stable but slow-growing, serving as a reliable mid-tier productivity tool in the Rust ecosystem. Unlikely to see explosive adoption or displacement by alternatives, but also unlikely to be abandoned given its niche fit and low maintenance burden. May see incremental trait additions as Rust's std library evolves, but no paradigm shifts expected.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Rust
- License
- MIT
- Last updated
- 3w ago
- Created
- 125mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Top contributors
Recent releases
Similar repos
idanarye/rust-typed-builder
A Rust proc-macro library that generates compile-time type-checked builder...
dtolnay/async-trait
async-trait is a Rust macro that enables async functions in trait definitions...
dtolnay/proc-macro-workshop
An educational workshop teaching Rust procedural macro development through five...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
2.1k | +2 | Rust | 8/10 | 3w ago |
|
|
5.5k | — | Rust | 9/10 | 2w ago |
|
|
1.2k | — | Rust | 8/10 | 1w ago |
|
|
2.2k | — | Rust | 9/10 | 2w ago |
|
|
4.8k | — | Rust | 9/10 | 3w ago |
|
|
2k | — | Rust | 8/10 | 2w ago |
Narrower scope: thiserror focuses only on Error trait derivation with custom error messages. derive_more covers 30+ traits. thiserror likely dominates error-handling use cases; derive_more is broader but less specialized.
Orthogonal: typed-builder generates type-safe builders, mainly for struct construction. derive_more covers operators and type conversions. Different problems solved; not directly competing.
Foundational dependency: syn is infrastructure for proc macros. derive_more likely depends on syn. Not a competitor; syn enables tools like derive_more.
Specialized: async-trait derives async fn in traits. derive_more does not solve async problems. Complementary, not competing.
Focused: derive-new specializes in constructor derivation. derive_more includes Constructor but also 30+ other traits. derive_more broader; derive-new deeper for constructors.