Uutf is an non-blocking streaming Unicode codec for OCaml to decode and encode the UTF-8, UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficiently work character by character without blocking on IO. Decoders perform character position tracking and support newline normalization.
Functions are also provided to fold over the characters of UTF encoded OCaml string values and to directly encode characters in OCaml Buffer.t values. Note that since OCaml 4.14, that functionality can be found in the Stdlib and you are encouraged to migrate to it.
Uutf is made of a single, independent, module and distributed under the ISC license.