notes

Buffered I/O library ideas

Go and Plan 9 generally have excellent standard libraries. For buffered I/O, Go has bufio and Plan 9 has libbio.

Reading UTF-8 characters is particularly ergonomic in Go bufio, which I find is often missing in other languages. I have implemented it myself in Rust and Node.js. I have since switched to the Rust utf8-chars crate, which extends io::BufRead with a read_char method, but this should be built in.

Rust io::BufReader::buffer allows you to get the internal buffer, which enables lower level operations. I wish this was in Go bufio. I am undecided on whether the io::BufRead trait is a useful pattern or too specific and rarely implemented besides io::BufReader.