Haskell FFI binding for liburing.
More info on liburing can be found here and
here
There are two layers to this library:
- raw, low-level bindings (
Control.Concurrent.URing.FFI) - somewhat higher level Haskell specific bindings (
Control.Concurrent.URing)
The low-level bindings try to do the bare minimum, they just wrap liburing
itself with no ceremony about it. The higher-level ones try to apply some
Haskell idioms on top of the low-level ones.
Since liburing has some inline functions defined, the file uring.[c|h] is used
so they can be bound to. I'm sure there's a better way to do this, but it works
for now.
Look in examples for examples.
Tested with liburing version 0.6-1 and kernel 5.6.14
liburing has numerous inline functions defined, since these don't exist in the
library, they can't be bound to. uring.c exists to make them regular C
functions at the cost of not being able to inline them.