I am a bit confused about using unwrap. From what I have read and understood so far every function which could fail should return either Result or Option and unwrap/except is more appropriate for tests/prototypes. But that is not the case in the libraries that I have seen so far, unwrap is everywhere (even in tokio, servo…). Just as an example (Ref. 2, below) if to_u32 fails, the new function panics and the caller thread terminates unless the caller wraps the call inside panic::catch_unwind. To summarize it looks like if you are using a 3rd party library then you should examine every function to see if it uses unwrap and if so then wrap it in a panic::catch_unwind which would be ugly. Is that correct? Am I missing something?