# anyhow (Rust crate)

34 Hacker News commenters recommended anyhow (Rust crate) and 10 criticized it, November 2025 to November 2026. It was recommended in 5 of 13 months. It meets the Hacker Approved badge rule.

**Verdict:** Recommended for easy error propagation and added context in Rust application code. Critics note it should not appear in library public APIs.

## Why people recommend it

- Standard pick for applications (4 comments): "Use thiserror to make error types in libraries, and anyhow in programs to handle them." ([source](https://news.ycombinator.com/item?id=46154689)) "anyhow for applications, thiserror for libraries." ([source](https://news.ycombinator.com/item?id=46435563)) "something like anyhow for applications" ([source](https://news.ycombinator.com/item?id=46414952))
- Adds error context conveniently (4 comments): "using eyre or anyhow or other error context libraries build convenient error context backtraces without needing to format things oneself" ([source](https://news.ycombinator.com/item?id=46156084)) "you can use things like anyhow or error_context to add context before returning" ([source](https://news.ycombinator.com/item?id=46154513)) "just use anyhow with .context" ([source](https://news.ycombinator.com/item?id=46161043))
- Easy error propagation up stacks (3 comments): "I've never had a problem using anyhow to pass errors up the call stack in any project I've used it in." ([source](https://news.ycombinator.com/item?id=48273083)) "The pros for using anyhow are big: Easily stack errors together" ([source](https://news.ycombinator.com/item?id=46414362)) "anyhow seems useful in the very top layers where you basically just want bubble the useful errors modeled elsewhere" ([source](https://news.ycombinator.com/item?id=46414537))
- Fail fast without panicking (2 comments): "goes a long way to being able to fail fast and return an Err rather then panicking" ([source](https://news.ycombinator.com/item?id=45977148)) "it’s so much less friction, and much better than just doing panic" ([source](https://news.ycombinator.com/item?id=46414911))

## What people warn about

- Not for library public APIs (4 comments): "you are not supposed to expose errors from a library with anyhow, they are only for application/top level code" ([source](https://news.ycombinator.com/item?id=48278069)) "if a library ever exposes that, then that's just the author being lazy and not doing errors correctly" ([source](https://news.ycombinator.com/item?id=48272992)) "this gets things done, but I'm told not to expose these errors in my public API" ([source](https://news.ycombinator.com/item?id=46154079))
- Still verbose, boilerplate remains (2 comments): "Even with anyhow there is a lot of boilerplate it seems to me dealing with crates that don't use it." ([source](https://news.ycombinator.com/item?id=46715804)) "Anyhow mostly works but this is approximately as verbose as the Go error handling" ([source](https://news.ycombinator.com/item?id=48262123))

## Alternatives hackers recommend

- [Rayon](https://hackerapproved.com/p/rayon.md): 18 recommend
- [thiserror](https://hackerapproved.com/p/thiserror.md): 16 recommend
- [rand crate](https://hackerapproved.com/p/rand-crate.md): 9 recommend
- [Facet (Rust reflection library)](https://hackerapproved.com/p/facet.md): 6 recommend
- [Surelock](https://hackerapproved.com/p/surelock.md): 6 recommend

## Cite as

Hacker Approved, "anyhow (Rust crate)", https://hackerapproved.com/p/anyhow/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
