anyhow

Flexible, idiomatic error handling for Rust applications with a single concrete error type.

Library
Cargo
v1.0.104
6,685 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
67 /100 Good
Development Activity 52
Maintenance 64
Community 52
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
93 /100 Excellent
Architecture 92
Code Quality 95
Innovation 94
Learning Curve 90

anyhow provides anyhow::Error, a trait-object-based error type that makes error handling in Rust application code effortless. Instead of defining bespoke error enums for every fallible function, you return anyhow::Result<T> and let the ? operator propagate any error that implements std::error::Error.

Beyond simple propagation, anyhow lets you attach human-readable context to errors, automatically captures backtraces on recent Rust versions, and supports downcasting back to concrete error types when you need to branch on the underlying cause. It works in both std and no_std environments and pairs naturally with thiserror for library-defined error types.

What You Get

  • A single anyhow::Error type and anyhow::Result<T> alias that absorb any std::error::Error via the ? operator
  • The Context / with_context API for attaching descriptive, low-overhead context to errors as they propagate
  • The anyhow! and bail! macros for constructing and early-returning ad-hoc errors with format-string interpolation
  • Automatic backtrace capture (Rust >= 1.65) and downcasting back to concrete error types by value or reference
  • no_std support (with a global allocator) exposing nearly the same API surface

Common Use Cases

  • Returning errors from application main, CLI tools, and glue code without defining custom error enums
  • Adding context to low-level errors so failures are debuggable (“Failed to read config from …”)
  • Propagating heterogeneous errors from many libraries through one uniform result type
  • Inspecting or branching on a root cause via downcasting when specific handling is required

Under The Hood

Architecture — The crate centers on a single Error type (src/error.rs) that is a thin, pointer-width wrapper around a heap-allocated ErrorImpl reached through custom fat/thin pointer machinery in src/ptr.rs (Own, Ref, Mut), letting one word carry the error plus a vtable of type-erased operations (display, debug, downcast, backtrace). src/context.rs implements the Context trait that layers messages onto the cause chain, src/chain.rs provides iteration over the Caused by: sources, src/fmt.rs renders the chain and backtrace, and src/backtrace.rs gates capture behind Rust-version and feature cfgs. Tech Stack — Pure Rust (edition 2021, MSRV 1.68), zero required runtime dependencies, with a build.rs probe that feature-detects compiler capabilities (core error trait, generic member access, backtrace support) and sets cfgs so the same source compiles across a wide range of toolchains and std/no_std. Dev-only dependencies (thiserror, trybuild, rustversion, syn, futures) exist purely for the test suite. Code Quality — Exceptionally high: 14 integration test files under tests/ cover downcasting, context, ffi, boxed conversion, fmt, macros, source chains, and drop behavior, plus trybuild compile-fail UI tests that pin exact error messages. The code is unsafe-heavy by necessity (manual pointer tagging) but tightly encapsulated behind safe APIs and maintained by a single expert author with meticulous cfg discipline. API Design — Best-in-class developer experience: getting started needs only use anyhow::Result and the ? operator, context is one .context("...") call away, and the anyhow!/bail! macros read naturally. Documentation is thorough with runnable doctests on every public item, and the API deliberately mirrors familiar Result/Error idioms so the learning curve is minimal.

Used by 50 apps in this directory

Rust
90%
Apache 2.0

Qdrant

AI Development · Databases · Search

35,220

Open-source vector database and search engine built in Rust for production-grade AI applications — from semantic search to RAG pipelines and recommendation systems.

View details
92
Repo Health
87
Technical
62
Dependency
Built with
Rust 90%
Updated 1 weeks ago
Java
93%
Apache 2.0

QuestDB

Analytics · Databases

17,466

A high-performance, open-source time-series database built for financial market data, IoT telemetry, and real-time analytics, combining a zero-GC Java/C++ core with SIMD-accelerated SQL and a WAL-to-Parquet storage engine.

View details
91
Repo Health
86
Technical
67
Dependency
Built with
Java 93%
Updated 6 days ago
Rust
63%
MIT

Readur

Bookmarks Archiving · File Storage · Knowledge Management

804

A self-hosted document management system that OCRs, indexes, and makes every PDF, scan, and Office file instantly searchable.

View details
83
Repo Health
78
Technical
67
Dependency
Built with
Rust 63%
TypeScript 32%
Updated 6 days ago
Rust
72%
Apache 2.0

Rivet

AI Agents · Developer Tools

6,326

Stateful actors as a primitive for AI agents, real-time collaboration, and durable execution — with in-memory state, WebSockets, queues, and scheduling built in.

View details
87
Repo Health
81
Technical
64
Dependency
Built with
Rust 72%
TypeScript 25%
Updated 6 days ago
TypeScript
61%
AGPL 3.0

Silex

Design Tools · No Code Platforms

3,015

Free, open-source visual website builder that exports clean HTML/CSS — no lock-in, no subscription, host anywhere

View details
89
Repo Health
68
Technical
67
Dependency
Built with
TypeScript 61%
Rust 15%
JavaScript 11%
Updated 1 weeks ago
Rust
79%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,292

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
84
Repo Health
84
Technical
63
Dependency
Built with
Rust 79%
TypeScript 18%
Updated 2 weeks ago
Rust
74%
MIT

squad

AI Agents · Collaboration · Developer Tools

833

A daemonless Rust CLI that lets multiple AI coding agents collaborate across terminals through a shared SQLite database instead of a server.

View details
42
Repo Health
73
Technical
79
Dependency
Built with
Rust 74%
Shell 14%
HTML 12%
Updated 5 months ago
Rust
46%
MIT

Svix

Automation · Developer Tools

3,463

Open source, self-hostable webhook infrastructure that handles delivery, retries, HMAC signing, and multi-tenant event management so you never have to build a webhooks system from scratch.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
Rust 46%
C# 16%
Updated 1 weeks ago
C
74%
AGPL 3.0

TDengine

Databases

25,168

A high-performance, open-source time-series database built in C for IoT, connected vehicles, and industrial monitoring workloads, with built-in stream processing, caching, and data subscription.

View details
97
Repo Health
71
Technical
65
Dependency
Built with
C 74%
C++ 19%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers