This is a Rust crate that provides a convenient derive macro (#[derive(Error)]) for implementing std::error::Error on your custom error types (structs or enums). The goal is to enable library authors to build expressive, typed error types, with readable Display implementations (via #[error("...")] annotations) as well as From conversions (#[from]), source tracking (#[source]), and optionally backtraces. It is designed so that switching from handwritten error implementation to using this error is not a breaking change: you retain the same API. The README shows examples: an enum with variants annotated by #[error("…")] and #[from] fields to derive the appropriate trait impls. The crate expects rustc ≥ 1.68+. The README also outlines how you choose; use thiserror if you care about designing your own error-types (e.g., for libraries) vs anyhow for applications.

Features

  • #[derive(Error)] macro to implement std::error::Error for your types
  • #[error("…")] annotation for Display message formatting with interpolation
  • #[from] attribute for automatic From conversions from underlying error types
  • #[source] attribute (or implied) for error chaining
  • Backtrace field support (via #[backtrace], nightly-only)
  • Library-friendly design: no impact on public API if switching implementation

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

Apache License V2.0

Follow derive(Error)

derive(Error) Web Site

Other Useful Business Software
Go from Code to Production URL in Seconds Icon
Go from Code to Production URL in Seconds

Cloud Run deploys apps in any language instantly. Scales to zero. Pay only when code runs.

Skip the Kubernetes configs. Cloud Run handles HTTPS, scaling, and infrastructure automatically. Two million requests free per month.
Try it free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of derive(Error)!

Additional Project Details

Programming Language

Rust

Related Categories

Rust Libraries

Registered

2025-11-14