Skip to main content

Python binding for Linux AIO

Project description

[english] | [한국어 (korean)]

linux_aio_bind: Python binding for Linux Kernel AIO

A low-level python binding module that matches the Linux kernel AIO system call.

If you are not using the ctypes module to develop high-level python modules directly, but you want to use AIO functionality in python, see High-level python wrapper.

What is Linux Kernel AIO?

Linux IO Models table

In summary, it allows non-blocking and asynchronous use of blocking IO operations such as read(2) and write(2).

Related documents

It is different from POSIX AIO

The POSIX AIO APIs have the aio_ prefix, but the Linux Kernel AIO has the io_ prefix.

There is already a POSIX AIO API for asynchronous I/O, but Linux implements it in glibc, a user-space library, which is supposed to use multi-threading internally. So, as you can see from the experiment, it's much worse than using the blocking IO API.

Implementation & Structure

Example

Examples can be found in the code in the test directory.

Notes & Limits

  • Obviously available only on Linux
  • Because it is a wrapper, it brings the constraints of Linux.
    • It can not be used for files used as a kernel interface. (e.g. cgroup)
    • Sometimes it works as Blocking.
      • There are some things that have been solved through development after posting.
    • Some features are being added because they are still under development.
    • There are also some features that are not supported when the Linux version is low
      • You need to check Linux man pages (4.16) and its related API documentation
      • Poll is 4.19 or higher, fsync and fdsync require 4.18 or higher kernel

Download files

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

Source Distribution

linux_aio_bind-1.0.0.tar.gz (10.1 kB view hashes)

Uploaded Source

Built Distributions

linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_x86_64.whl (16.3 kB view hashes)

Uploaded CPython 3.7m

linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_i686.whl (16.2 kB view hashes)

Uploaded CPython 3.7m

linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_x86_64.whl (16.3 kB view hashes)

Uploaded CPython 3.6m

linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_i686.whl (16.2 kB view hashes)

Uploaded CPython 3.6m

linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_x86_64.whl (16.3 kB view hashes)

Uploaded CPython 3.5m

linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_i686.whl (16.2 kB view hashes)

Uploaded CPython 3.5m

linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_x86_64.whl (16.3 kB view hashes)

Uploaded CPython 3.4m

linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_i686.whl (16.2 kB view hashes)

Uploaded CPython 3.4m

linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_x86_64.whl (18.9 kB view hashes)

Uploaded CPython 2.7m

linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_i686.whl (18.7 kB view hashes)

Uploaded CPython 2.7m

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