Eio 
Eio — современный основанный на эффектах стек ввода-вывода для OCaml 5. Предлагает эффективный кроссплатформенный API, например, по работе с файловой системой, сетью, интенсивными CPU вычислениями и параллельностью.
Buf_read 
Это модуль для разбора буферизованного ввода. Документация.
Неполный разбор 
Стандартная функция Buf_read.parse ожидает, что принимаемый ею парсер читает весь поток данный. Если вы хотите прочитать только часть потока, то необходимо самостоятельно реализовать этот функционал.
Пример реализации:
ocaml
let of_flow ~initial_size ~max_size flow =
  let buf = Eio.Buf_read.of_flow flow ~initial_size ~max_size in
  Eio.Buf_read.format_errors parser bufsigned/unsigned integers 
| Тип | Знаковость | 
|---|---|
uint8 | unsigned | 
uint16 | unsigned | 
uint32 | signed | 
uint64 | signed | 
Почему uint32 и uint64 знаковые, но помечены как unsigned? У автора по этому безумные шизомысли.
Знаковый int8 и int16 своими руками
ocaml
module R = struct
  include Eio.Buf_read
  (* Простой способ, но не самый эффективный. *)
  let int8 = map (Fun.flip String.get_int8 0) (take 1)
  let int16_be = map (Fun.flip String.get_int16_be 0) (take 2)
end