Async file I/O library in Nim using io_uring.
- Linux only (io_uring)
- Supports asyncdispatch or Chronos
- Nim >= 2.0.2
- Linux 5.6+ (6.1+ recommended)
nimble install iori# examples/simple.nim
import pkg/iori
proc main() {.async.} =
let io = newUringFileIO()
# Write
await io.writeFileString("/tmp/hello.txt", "Hello, iori!")
# Read
let content = await io.readFileString("/tmp/hello.txt")
echo content
io.close()
waitFor main()Compile with an async backend:
# Use std/asyncdispatch
nim c -d:asyncBackend=asyncdispatch -r examples/simple.nim
# Use Chronos
nimble install chronos
nim c -d:asyncBackend=chronos -r examples/simple.nimhttps://fox0430.github.io/iori/iori.html
- SQ polling (
IORING_SETUP_SQPOLL) - Additional opcodes:
READV,WRITEV,FALLOCATE,UNLINKAT,MKDIRAT
MIT