liburing
Library providing helpers for the Linux kernel io_uring support
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
4 of 192 committers (2.1%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.5%) to scientific vocabulary
Keywords from Contributors
Repository
Library providing helpers for the Linux kernel io_uring support
Basic Info
Statistics
- Stars: 3,335
- Watchers: 113
- Forks: 470
- Open Issues: 45
- Releases: 12
Metadata Files
README
liburing
--------
This is the io_uring library, liburing. liburing provides helpers to setup and
teardown io_uring instances, and also a simplified interface for
applications that don't need (or want) to deal with the full kernel
side implementation.
For more info on io_uring, please see:
https://kernel.dk/io_uring.pdf
Subscribe to io-uring@vger.kernel.org for io_uring related discussions
and development for both kernel and userspace. The list is archived here:
https://lore.kernel.org/io-uring/
kernel version dependency
--------------------------
liburing itself is not tied to any specific kernel release, and hence it's
possible to use the newest liburing release even on older kernels (and vice
versa). Newer features may only be available on more recent kernels,
obviously.
ulimit settings
---------------
io_uring accounts memory it needs under the rlimit memlocked option, which
can be quite low on some setups (64K). The default is usually enough for
most use cases, but bigger rings or things like registered buffers deplete
it quickly. root isn't under this restriction, but regular users are. Going
into detail on how to bump the limit on various systems is beyond the scope
of this little blurb, but check /etc/security/limits.conf for user specific
settings, or /etc/systemd/user.conf and /etc/systemd/system.conf for systemd
setups. This affects 5.11 and earlier, new kernels are less dependent
on RLIMIT_MEMLOCK as it is only used for registering buffers.
Regressions tests
-----------------
The bulk of liburing is actually regression/unit tests for both liburing and
the kernel io_uring support. Please note that this suite isn't expected to
pass on older kernels, and may even crash or hang older kernels!
Building liburing
-----------------
#
# Prepare build config (optional).
#
# --cc specifies the C compiler.
# --cxx specifies the C++ compiler.
#
./configure --cc=gcc --cxx=g++;
#
# Build liburing.
#
make -j$(nproc);
#
# Build liburing.pc
#
make liburing.pc
#
# Install liburing (headers, shared/static libs, and manpage).
#
sudo make install;
See './configure --help' for more information about build config options.
FFI support
-----------
By default, the build results in 4 lib files:
2 shared libs:
liburing.so
liburing-ffi.so
2 static libs:
liburing.a
liburing-ffi.a
Languages and applications that can't use 'static inline' functions in
liburing.h should use the FFI variants.
liburing's main public interface lives in liburing.h as 'static inline'
functions. Users wishing to consume liburing purely as a binary dependency
should link against liburing-ffi. It contains definitions for every 'static
inline' function.
License
-------
All software contained within this repo is dual licensed LGPL and MIT, see
COPYING and LICENSE, except for a header coming from the kernel which is
dual licensed GPL with a Linux-syscall-note exception and MIT, see
COPYING.GPL and .
Jens Axboe 2022-05-19
Owner
- Name: Jens Axboe
- Login: axboe
- Kind: user
- Company: Facebook
- Repositories: 2
- Profile: https://github.com/axboe
Citation (CITATION.cff)
cff-version: 1.2.0
preferred-citation:
type: software
authors:
- family-names: "Axboe"
given-names: "Jens"
email: axboe@kernel.dk
title: "liburing library for io_uring"
year: 2022
url: "https://github.com/axboe/liburing"
licence: MIT
GitHub Events
Total
- Create event: 16
- Commit comment event: 10
- Release event: 7
- Issues event: 153
- Watch event: 433
- Issue comment event: 499
- Push event: 212
- Pull request review event: 21
- Pull request review comment event: 20
- Pull request event: 61
- Fork event: 66
Last Year
- Create event: 16
- Commit comment event: 10
- Release event: 7
- Issues event: 153
- Watch event: 433
- Issue comment event: 499
- Push event: 212
- Pull request review event: 21
- Pull request review comment event: 20
- Pull request event: 61
- Fork event: 66
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Jens Axboe | a****e@k****k | 1,605 |
| Pavel Begunkov | a****e@g****m | 252 |
| Ammar Faizi | a****2@g****g | 196 |
| Guillem Jover | g****m@h****g | 68 |
| Dylan Yudaken | d****y@f****m | 59 |
| CPestka | c****a@c****e | 41 |
| Caleb Sander Mateos | c****r@p****m | 24 |
| Stefano Garzarella | s****e@r****m | 21 |
| Wojciech Lukowicz | w****1@g****m | 20 |
| Stefan Hajnoczi | s****a@r****m | 20 |
| Josh Triplett | j****h@j****g | 20 |
| 李通洲 | c****i@e****m | 19 |
| Jeff Moyer | j****r@r****m | 19 |
| Alviro Iskandar Setiawan | a****r@g****g | 17 |
| Bart Van Assche | b****e@a****g | 16 |
| Stefan Roesch | s****r@f****m | 16 |
| Breno Leitao | l****o@d****g | 15 |
| Kefu Chai | t****v@g****m | 13 |
| Dylan Yudaken | d****y@m****m | 12 |
| Michael de Lang | k****o@g****m | 11 |
| Stefan Metzmacher | m****e@s****g | 11 |
| Hrvoje Zeba | z****e@g****m | 11 |
| Dmitry Kadashev | d****v@g****m | 11 |
| Eli Schwartz | e****3@g****m | 10 |
| Gabriel Krisman Bertazi | k****n@s****e | 10 |
| David Wei | dw@d****k | 10 |
| Haiyue Wang | h****a@1****m | 10 |
| David Disseldorp | d****s@s****e | 8 |
| Rutvik Patel | h****k@g****m | 8 |
| Jackie Liu | l****1@k****n | 8 |
| and 162 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 413
- Total pull requests: 223
- Average time to close issues: 5 months
- Average time to close pull requests: about 1 month
- Total issue authors: 213
- Total pull request authors: 74
- Average comments per issue: 6.17
- Average comments per pull request: 2.17
- Merged pull requests: 177
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 106
- Pull requests: 97
- Average time to close issues: 6 days
- Average time to close pull requests: 5 days
- Issue authors: 65
- Pull request authors: 30
- Average comments per issue: 3.21
- Average comments per pull request: 1.34
- Merged pull requests: 76
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- YoSTEALTH (22)
- AomaYple (17)
- FrankReh (12)
- vsolontsov-ll (10)
- cmazakas (9)
- ZhenbangYou (9)
- sxstd001 (7)
- SUPERCILEX (7)
- pyhd (7)
- romange (7)
- lano1106 (7)
- nikneym (6)
- vt-alt (5)
- suxinggm (5)
- illiliti (5)
Pull Request Authors
- guillemj (25)
- CPestka (19)
- cmazakas (18)
- calebsander (10)
- wlukowicz (9)
- leitao (8)
- Oipo (6)
- kraj (6)
- jirislaby (6)
- joshtriplett (4)
- dankamongmen (4)
- CarterLi (4)
- ffontaine (4)
- aconz2 (4)
- ddiss (4)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- homebrew 16 last-month
-
Total dependent packages: 1
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 8
- Total maintainers: 1
spack.io: liburing
Linux-native io_uring I/O access library. liburing provides helpers to setup and teardown io_uring instances, and a simplified interface for applications that don't need (or want) to deal with the full kernel side implementation. It enables high-performance asynchronous I/O operations on Linux systems supporting the io_uring interface.
- Homepage: https://github.com/axboe/liburing
- License: []
Rankings
Maintainers (1)
formulae.brew.sh: liburing
Helpers to setup and teardown io_uring instances
- Homepage: https://github.com/axboe/liburing
- License: MIT OR LGPL-2.1-only
-
Latest release: 2.12
published 6 months ago
Rankings
Dependencies
- actions/checkout v2 composite
- actions/checkout v2 composite