utf8-io

Traits and types for UTF-8 I/O

Github Actions CI Status crates.io page docs.rs docs

`utf8-io` defines several utilities for performing UTF-8 I/O. - [`ReadStr`] and [`WriteStr`] are traits which extend [`Read`] and [`Write`] providing `read_str` and `write_str` functions for reading and writing UTF-8 data. - [`Utf8Reader`] and [`Utf8Writer`] implement `ReadStr` and `WriteStr` and wrap arbitrary `Read` and `Write` implementations. `Utf8Reader` translates invalid UTF-8 encodings into replacements (U+FFFD), while `Utf8Writer` reports errors on invalid UTF-8 encodings. Both ensure that scalar values are never split at the end of a buffer. - [`Utf8Duplexer`] represents an interactive stream and implements both `ReadStr` and `WriteStr`. ## Similar crates `Utf8Reader` is similar [`utf8-read`], but differs in that it silently turns invalid byte sequences into replacement characters rather than reporting an error. [`utf8-read`]: https://crates.io/crates/utf8-read [`ReadStr`]: https://docs.rs/utf8-io/latest/utf8_io/trait.ReadStr.html [`WriteStr`]: https://docs.rs/utf8-io/latest/utf8_io/trait.WriteStr.html [`Utf8Reader`]: https://docs.rs/utf8-io/latest/utf8_io/struct.Utf8Reader.html [`Utf8Writer`]: https://docs.rs/utf8-io/latest/utf8_io/struct.Utf8Writer.html [`Utf8Duplexer`]: https://docs.rs/utf8-io/latest/utf8_io/struct.Utf8Duplexer.html