While its true that reading rust-bitcoin types directly without a buffer is gonna be slow, sadly the Rust world uses the Read type everywhere, not BufRead. As a result, in many cases, you end up with a Read that you have to read bitcoin data out of...which you can't. The BufRead requirement was a cool idea in that it forced people to do a more efficient thing, but the less efficient thing isn't actually wrong, just slower, so should just be dropped IMO.