package uring

  1. Overview
  2. Docs
OCaml bindings for Linux io_uring

Install

dune-project
 Dependency

Authors

Maintainers

Sources

uring-0.2.tbz
sha256=4f1446664ae6091cb6e34688b6ddf384f2b26674ea7e6b6105018a12a2893a21
sha512=0658ce85cdd254aca8605f877ed321e004696943a58ecaba96cc923fee0024084b6cca541669bd4f879cbf1d05deecb01f12652dbce09235880a5de384233dd9

Description

Bindings to the Linux io_uring kernel IO interfaces. See https://github.com/ocaml-multicore/eio for a higher-level API using this.

Published: 02 Feb 2022

README

ocaml-uring -- bindings to Linux io_uring

These are OCaml bindings for the Linux io_uring stack (an alternative to using syscalls such as select or epoll).

The Eio library provides a higher-level effects-based API that uses this library to implement its Linux backend, but ocaml-uring may be useful with single-core non-effects versions of OCaml too.

To use the library directly:

  1. Call Uring.create to initialise a ring.

  2. Add IO requests to the ring using functions such as Uring.readv.

  3. Call Uring.submit to notify the kernel of the new requests.

  4. Call Uring.wait to wait until an operation is complete.

The tests directory contains some examples.

License

This library is released under the ISC license (see LICENSE.md), but note that the repository also vendors liburing - see vendor/liburing/README.

Dependencies (6)

  1. optint >= "0.1.0"
  2. fmt >= "0.8.10"
  3. dune-configurator
  4. ocaml >= "4.12.0"
  5. cstruct >= "6.0.1"
  6. dune >= "2.7"

Dev Dependencies (8)

  1. odoc with-doc
  2. alcotest >= "1.4.0" & with-test
  3. cmdliner with-test
  4. logs with-test & >= "0.5.0"
  5. bechamel >= "0.1.0" & with-test
  6. bechamel-notty >= "0.1.0" & with-test
  7. notty >= "0.2.2" & with-test
  8. lwt with-test & >= "5.0.0"

Used by (1)

  1. eio_linux < "0.2"

Conflicts

None

OCaml

Innovation. Community. Security.