Open armanbilge opened 2 years ago
Title | io_uring asynchronous File I/O for Scala Native |
---|---|
Link to Project | https://github.com/armanbilge/fs2-io_uring |
Brief Description | io_uring is a Linux API for making efficient I/O system calls, and notably enables to do non-blocking, asynchronous file I/O. This is especially interesting for single-threaded runtimes, such as Scala Native. FS2 is a purely functional, streaming I/O library built on Cats Effect. fs2-io_uring is an implementation of FS2 for Scala Native, based on io_uring. It currently provides APIs for network I/O but does not yet support file I/O. The goal of this project is to implement the FS2 Files API for Scala Native by using io_uring, and contribute it to the fs2-io_uring project. |
Expected Outcome | An io_uring Files implementation for FS2 on Scala Native |
Prerequisites | Scala, ability to read C |
Ideal Prerequisites | Experience with C, functional programming, Typelevel libraries |
Expected Difficulty | Medium – doable with high chance of success given creativity and problem-solving skills from the one doing it |
Expected Time Commitment | Long project – 350 hours |
Mentor | Arman Bilge (GitHub: @armanbilge, Email: armanbilge@gmail.com) |
As an implementation of FS2's
Files
typeclass. io_uring is virtually the only way to do async, non-blocking file I/O, so this is potentially a very interesting offering.