Do people still recommend snafu?
It works well for libraries and applications and has bells and whistles you might want, such as backtrace captures on stable Rust.
You can see what the libraries do by expanding the procedural macros they use. When you look at the output, it's nothing special that you couldn't have done yourself!