[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?
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
- ctypes module is used.
- It is defined to correspond
1:1with the C header of Linux AIO.- Implemented 100% of the functionality when using C.
- All the functions shown in the man page based on Linux man pages (4.16), and all the functions added in 4.20.3 source code, as far as I can find them.
- If you know how to use the ctypes module to operate on pointers, you can also build other types of wrappers based on this package.
- It uses
syscallfor invoking ABI and cffi for gathering different syscall number by architecture on module installation. - python stub (
pyifiles - for type hint) are included. - All error handling in the documentation (based on man-pages 4.16)
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
- It can not be used for files used as a kernel interface. (e.g.
Metadata
Release files for linux-aio-bind 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| linux_aio_bind-1.0.0.tar.gz | 10.1 kB | Without provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_x86_64.whl | CPython 3.7 | CPython 3.7 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_i686.whl | CPython 3.7 | CPython 3.7 pymalloc | Linux glibc 2.5+ x86-32 | Details |
| linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_x86_64.whl | CPython 3.6 | CPython 3.6 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_i686.whl | CPython 3.6 | CPython 3.6 pymalloc | Linux glibc 2.5+ x86-32 | Details |
| linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_x86_64.whl | CPython 3.5 | CPython 3.5 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_i686.whl | CPython 3.5 | CPython 3.5 pymalloc | Linux glibc 2.5+ x86-32 | Details |
| linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_x86_64.whl | CPython 3.4 | CPython 3.4 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_i686.whl | CPython 3.4 | CPython 3.4 pymalloc | Linux glibc 2.5+ x86-32 | Details |
| linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_x86_64.whl | CPython 2.7 | CPython 2.7 pymalloc | Linux glibc 2.5+ x86-64 | Details |
| linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_i686.whl | CPython 2.7 | CPython 2.7 pymalloc | Linux glibc 2.5+ x86-32 | Details |
Total release size: 177.9 kB
Release files / linux_aio_bind-1.0.0.tar.gz
| Download URL | linux_aio_bind-1.0.0.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e9a3d9453493af58debf6e5d578316ea171052651c77b95b99ce6c96e7c6624c
|
|
BLAKE2b-256 checksum How to use checksums |
0e6cbfb5a132f97c5eb73216806639181a53949b7352f8ecb60ff5aec99c83e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_x86_64.whl
| Download URL | linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_x86_64.whl |
|---|---|
| Size | 16.3 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
c4d74d09eb5075b95dcdb0ff4b77b99ba164b2c908b7677b08003690e984cbbc
|
|
BLAKE2b-256 checksum How to use checksums |
eede28bbd1aa1d50e5cd4ed250556ab39f904a34c9740fadcd5f862bea310e8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_i686.whl
| Download URL | linux_aio_bind-1.0.0-cp37-cp37m-manylinux1_i686.whl |
|---|---|
| Size | 16.2 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
97d7875bc11b41778623a6f7cc6c54f6751b6a7094845b0ff19f4ea0366e8f68
|
|
BLAKE2b-256 checksum How to use checksums |
b19a85f30dd486542f11ffe9c16f8d21434c04de5d8a0a2cb3e7139d0581cc3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_x86_64.whl
| Download URL | linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_x86_64.whl |
|---|---|
| Size | 16.3 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
21075c295dacb4d8a830e45c592050fb15faa598f0c9c54ef863129f802a66a2
|
|
BLAKE2b-256 checksum How to use checksums |
1b8cbe149fe6503720497a43aafbdb60b1b52af5aeb885c590323828d5c4f282
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_i686.whl
| Download URL | linux_aio_bind-1.0.0-cp36-cp36m-manylinux1_i686.whl |
|---|---|
| Size | 16.2 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
666aa7d52fc7c73c5e24fc14fae56a9134861c7333fe6d7865c742be9ec43453
|
|
BLAKE2b-256 checksum How to use checksums |
8a1031f1e80b51e168eae82c5b4229ee6909443a01490a7eb6f0d71af091862b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_x86_64.whl
| Download URL | linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_x86_64.whl |
|---|---|
| Size | 16.3 kB |
| Tags | CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
bfcb5891f1d344da1c84e271a7994d8317bb315e56bb7f33318df479d3aedabe
|
|
BLAKE2b-256 checksum How to use checksums |
ba39db6e9f6395ddfa71bd10d63cff3671c5cb74b19ce72abcb09a6952869a45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_i686.whl
| Download URL | linux_aio_bind-1.0.0-cp35-cp35m-manylinux1_i686.whl |
|---|---|
| Size | 16.2 kB |
| Tags | CPython 3.5 CPython 3.5 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
b9abd070ca2faa96e05e5412ccd5df1488a3fafab67b883ad315a3e3c8cc3a7e
|
|
BLAKE2b-256 checksum How to use checksums |
e90622e010f820dc90a8323743485a364f0ecd4053c78e35ba5ce4cc51f1de0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_x86_64.whl
| Download URL | linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_x86_64.whl |
|---|---|
| Size | 16.3 kB |
| Tags | CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
bfeb269314ac736dc35d064cad635d292e79285c71b8dcefb1dce50a83cb6056
|
|
BLAKE2b-256 checksum How to use checksums |
3b024d3d2f8cfaab73239c9224384f40924c2f2d0e126e9f5d5096fee711df74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_i686.whl
| Download URL | linux_aio_bind-1.0.0-cp34-cp34m-manylinux1_i686.whl |
|---|---|
| Size | 16.2 kB |
| Tags | CPython 3.4 CPython 3.4 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
e76dbf6c3988f418b277cb94906e3c74a2f13cee187c2f85050f9a9d2ff7b7cc
|
|
BLAKE2b-256 checksum How to use checksums |
adf0533bb803f629c0e4aaf4689725b1b8f2524ab17490570665f061b8c44e12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_x86_64.whl
| Download URL | linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_x86_64.whl |
|---|---|
| Size | 18.9 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
895763eb854bb07815ab3d28e01a252421de36dbda0931f172d1707d0f0eaf0b
|
|
BLAKE2b-256 checksum How to use checksums |
359388ebd0e3d171ab30a9da592ec8289d806656245b0a5962e2196f71feef48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Release files / linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_i686.whl
| Download URL | linux_aio_bind-1.0.0-cp27-cp27m-manylinux1_i686.whl |
|---|---|
| Size | 18.7 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc Linux glibc 2.5+ x86-32 |
|
SHA-256 checksum How to use checksums |
417a570df02cad9c0b8301aaf60123b244b50096eec2640290c8853c75f7218d
|
|
BLAKE2b-256 checksum How to use checksums |
8c462345746388aed8c805324bb2d3b5527e70a0f129b90ccc870d139d29f7ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/2.7.15
|
Security for linux-aio-bind 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.