Skip to content

vandrada/liburing-hs

Repository files navigation

liburing-hs

Haskell FFI binding for liburing.

More info on liburing can be found here and here

Overview

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

Limitations

Inline Functions

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.

About

Haskell bindings for liburing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors