uring
OCaml bindings for Linux io_uring
README
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:
Call
Uring.create
to initialise a ring.Add IO requests to the ring using functions such as
Uring.readv
.Call
Uring.submit
to notify the kernel of the new requests.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.
Install
- Maintainers
-
Sources
uring-0.3.tbz
sha256=47c225fce95ad34dd38c35f30724f7d8111afd4370d301985abc720747c6d746
sha512=af093ea00aa57d02a32f27708a3a6ebc9e3b6d509ecbe0c88b0ba85ec57a23131c51c5009b40a3ef4a63568ad9d2793bff73e7cf7ba149b9ea5ce12b41d2aafa
Dependencies
odoc
with-doc
alcotest
>= "1.4.0" & with-test
optint
>= "0.1.0"
fmt
>= "0.8.10"
cmdliner
with-test & >= "1.1.0"
logs
with-test & >= "0.5.0"
bechamel
>= "0.1.0" & with-test
bechamel-notty
>= "0.1.0" & with-test
notty
>= "0.2.2" & with-test
lwt
with-test & >= "5.0.0"
ocaml
>= "4.12.0"
cstruct
>= "6.0.1"
dune
>= "2.7"
Reverse Dependencies
eio_linux
>= "0.2"