package uutf

  1. Overview
  2. Docs
Non-blocking streaming Unicode codec for OCaml






Uutf — Non-blocking streaming Unicode codec for OCaml


Uutf is a non-blocking streaming codec 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 has no dependency and is distributed under the ISC license.

Home page:
Contact: Daniel Bünzli <daniel.buenzl>


Uutf can be installed with opam:

opam install uutf

If you don't use opam consult the opam file for build instructions.


The documentation and API reference is automatically generated by from the source interfaces. It can be consulted online or via odig doc uutf.

Sample programs

Sample programs are located in the test directory of the distribution. They can be built and run with:

topkg build --test true && topkg test

The resulting binaries are in _build/test :

  • test.native tests the library, nothing should fail.

  • utftrip.native, among other things, reads unicode on stdin and rewrites it on stdout. Invoke with --help for more information. Depends on Cmdliner.