Skip to content

fox0430/iori

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iori

Async file I/O library in Nim using io_uring.

Requirements

  • Nim >= 2.0.2
  • Linux 5.6+ (6.1+ recommended)

Install

nimble install iori

Usage

# 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.nim

Documentation

https://fox0430.github.io/iori/iori.html

TODO

  • SQ polling (IORING_SETUP_SQPOLL)
  • Additional opcodes: READV, WRITEV, FALLOCATE, UNLINKAT, MKDIRAT

License

MIT

About

Async file I/O library in Nim using io_uring

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages