Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sunfishcode/utf8-io

Traits and types for UTF-8 I/O
https://github.com/sunfishcode/utf8-io

library rust

Last synced: 5 days ago
JSON representation

Traits and types for UTF-8 I/O

Awesome Lists containing this project

README

        


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