Skip to main content

Access to IoRings for fileIO with asyncio

Project description

aioring (Io Rings for asyncio)

aioring is a library that handles async fileIO. Currently we only support io_uring on linux, other operating systems fall back to a custom ring using python threads which is only intended for development purposes and should not be used in production.

from aioring import aio

async with await aio.open("file.name", "r") as f:
  content = await f.read()

install

aioring can be installed with pip

pip install aioring

aos

in aos we expose async versions of functions defined in the 'os' module. currently we support:

  • aos.pread(fd: int, count: int, offset: int)
  • aos.pwrite(fd: int, buffer: bytes, offset: int)
  • aos.close(fd: int)
  • aos.open(path: str, flags: int, mode: int=0o777, *, dir_fd=None)
  • aos.fstat(fd: int)
  • aos.stat(path: str) these functions should work the same way as their counterpart in the os module but need to be called with await.

aio

in aio we expose a async implementation of the cpython pyio module (https://github.com/python/cpython/blob/3.10/Lib/_pyio.py) usage is like normal io but with async/await

from aioring import aio
# read file
async with await aio.open("file.txt", "r") as f:
    data = await f.read()
    
# write file
async with await aio.open("file.txt", "w") as f:
    data = await f.write("test")

Plans

  • fileIO
  • Windows IoRing
  • socketIO
  • directory operations? (io_uring currently does not support readdir)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aioring-0.1.2.tar.gz (300.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page