pub/scm/linux/kernel/git/axboe/liburing.git  about / heads / tags
io_uring library
$ git log --pretty=format:'%h %s (%cs)%d'
ce320c70 test/bind-listen: ensure 'ts' is set before io_uring_wait_cqe_timeout() (2026-05-11)
	(HEAD -> master)
d6b7e99b Merge branch 'abs-timer-test' (2026-05-07)
eb8dd984 test: add timens-abs-timer regression test (2026-05-07)
	(abs-timer-test)
5dfc30a2 test/nop-flags: don't fail on kernels without IORING_SETUP_SUBMIT_ALL (2026-05-01)
43cd3568 test/io_uring_passthrough: fix incorrect ring setup code (2026-05-01)
7a70403e test/file-alloc-range-hint: skip on old kernels (2026-05-01)
3089bbbb Merge branch 'buf-inc-left' (2026-05-01)
d473a0d6 man: update struct io_uring_buf_reg documentation (2026-04-28)
	(buf-inc-left)
3891a21f Add test case for minimum length left for incremental buffers (2026-04-28)
8e87a9b0 Merge branch 'bpf-ops-fixes' (2026-04-26)
...

$ git cat-file blob HEAD: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.

Out-of-source builds are also supported, keeping the source tree clean, and
allowing you to have different configurations side-by-side:

    mkdir build && cd build
    ../configure
    make -j$(nproc)
    sudo make install


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 <https://spdx.org/licenses/Linux-syscall-note.html>.

Jens Axboe 2022-05-19

# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
	--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master       test/bind-listen: ensure 'ts' is set before io_uring_wait_cqe_timeout() (2026-05-11)
  abs-timer-test test: add timens-abs-timer regression test (2026-05-07)
  buf-inc-left man: update struct io_uring_buf_reg documentation (2026-04-28)
  bpf-ops-fixes .gitignore: add new test build output (2026-04-26)
  poll-mshot-wake test/poll-mshot-wake: ensure multishot is terminated for nested wakes (2026-04-21)
  large-resize test/large-resize: test resizing with pending large CQEs/SQEs (2026-04-21)
  bpf-restrictions io_uring/bpf_filter.h: update for IORING_OP_OPENAT/OPENAT2 (2026-01-27)
  man-pages    man/io_uring_prep_linkat.3: expand ERRORS, NOTES and add examples (2026-01-18)
  task-restrictions Add support for per-task io restrictions (2026-01-09)
  getsockname  man/io_uring_prep_getsockname.3: Add man page (2025-11-26)
...

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
liburing-2.14 liburing-2.14 (2026-02-07) tar.gz
liburing-2.14-rc1 liburing-2.14-rc1 (2026-01-29) tar.gz
liburing-2.13 liburing-2.13 (2025-12-15) tar.gz
liburing-2.13-rc2 liburing-2.13-rc2 (2025-12-10) tar.gz
liburing-2.13-rc1 liburing-2.13-rc1 (2025-12-01) tar.gz
liburing-2.12 liburing-2.12 (2025-08-23) tar.gz
liburing-2.11 liburing-2.11 (2025-06-16) tar.gz
liburing-2.11-rc1 liburing-2.11-rc1 (2025-06-11) tar.gz
liburing-2.10 liburing-2.10 (2025-05-29) tar.gz
liburing-2.10-rc1 liburing-2.10-rc1 (2025-05-22) tar.gz
...

# associated public inboxes:
# (number on the left is used for dev purposes)
       1062 io-uring
        160 lkml
        101 linux-block
         20 netdev
         16 linux-fsdevel
         15 qemu-devel
         14 fio
         13 linux-arm-kernel
         13 u-boot
         12 stable
         11 linux-devicetree
          8 dpdk-dev
          8 linux-arch
          7 linux-mm
          7 linux-gpio
          7 dri-devel
          7 buildroot
          7 openembedded-devel
          6 linux-wireless
          6 xen-devel
          6 linuxppc-dev
          6 git
          5 linux-riscv
          5 bpf
          5 linux-nfs
          5 linux-arm-msm
          5 linux-rdma
          5 kvm
          5 intel-gfx
          5 linux-rockchip
          5 openembedded-core
          4 linux-xfs
          4 linux-mediatek
          4 netfilter-devel
          4 linux-amlogic
          4 linux-media
          4 linux-mips
          4 fstests
          4 linux-hwmon
          4 linux-input
          4 linux-usb
          4 linux-iio
          4 linux-leds
          4 linux-ide
          4 linux-csky
          4 linux-mmc
          4 linux-api
          4 cip-dev
          4 linux-omap
          4 linux-pwm
          4 linux-can
          4 linux-hardening
          4 dm-devel
          4 linux-perf-users
          4 yocto-meta-arm
          4 yocto-patches
          3 linux-crypto
          3 linux-acpi
          3 linux-iommu
          3 linux-snps-arc
          3 linux-rtc
          3 alsa-devel
          3 linux-scsi
          3 linux-btrfs
          3 kvmarm
          3 linux-kselftest
          3 linux-parisc
          3 linux-security-module
          3 linux-pci
          3 linux-rt-users
          3 linux-bluetooth
          3 linux-watchdog
          3 linux-m68k
          3 linux-doc
          3 linux-spi
          3 linux-i2c
          3 linux-remoteproc
          3 linux-tegra
          3 ceph-devel
          3 platform-driver-x86
          3 openbmc
          3 rust-for-linux
          3 nouveau
          3 linux-s390
          3 nvdimm
          3 llvm
          3 ofono
          3 ltp
          3 yocto-docs
          3 linux-patches
          3 yocto-meta-virtualization
          3 yocto-meta-ti
          3 yocto-meta-arago
          3 xenomai
          3 b4-sent
          3 intel-xe
          3 linux-um
          3 linux-sound
          3 barebox
          2 linux-samsung-soc
          2 linux-mtd
          2 linux-nvme
          2 linux-efi
          2 linux-integrity
          2 linux-edac
          2 linux-cifs
          2 linux-erofs
          2 linux-pm
          2 linux-renesas-soc
          2 selinux
          2 linux-clk
          2 dmaengine
          2 linux-next
          2 linux-ext4
          2 linux-f2fs-devel
          2 linux-modules
          2 linux-serial
          2 linux-trace-devel
          2 linux-hyperv
          2 rcu
          2 linux-i3c
          2 util-linux
          2 linux-spdx
          2 wireguard
          2 backports
          2 linux-man
          2 amd-gfx
          2 linux-unionfs
          2 linux-firmware
          2 linux-sparse
          2 virtualization
          2 linux-kbuild
          2 linux-fpga
          2 linux-raid
          2 phone-devel
          2 dash
          2 keyrings
          2 linux-fbdev
          2 linux-cxl
          2 linux-sh
          2 soc
          2 ocfs2-devel
          2 linux-phy
          2 kernel-janitors
          2 sparclinux
          2 linux-staging
          2 linux-sunxi
          2 mptcp
          2 linux-coco
          2 iwd
          2 yocto
          2 bitbake-devel
          2 damon
          2 openrisc
          2 kexec
          2 loongarch
          2 imx
          2 linux-trace-kernel
          2 oe-kbuild-all
          2 batman
          2 v9fs
          2 poky
          2 qemu-riscv
          2 cluster-devel
          2 grub-devel
          2 kvm-ppc
          2 linux-alpha
          2 linux-hexagon
          2 u-boot-amlogic
          2 perfbook
          2 igt-dev
          2 linux-aspeed
          1 linux-fscrypt
          1 cocci
          1 live-patching
          1 linux-nvdimm
          1 driverdev-devel
          1 kernel-hardening
          1 kernelnewbies
          1 linux-sgx
          1 workflows
          1 keys
          1 linux-wpan
          1 ksummit-discuss
          1 linux-kernel-mentees
          1 tpmdd-devel
          1 linux-audit
          1 linux-dash
          1 linux-bcache
          1 mm-commits
          1 lttng-dev
          1 containers
          1 xdp-newbies
          1 linux-sctp
          1 target-devel
          1 lustre-devel
          1 ath10k
          1 ath11k
          1 regressions
          1 ksummit
          1 b43-dev
          1 linux-nfc
          1 linux-bcachefs
          1 ath9k-devel
          1 ntfs3
          1 linux-ppp
          1 ell
          1 yocto-meta-freescale
          1 yocto-toaster
          1 chrome-platform
          1 ntb
          1 outreachy
          1 asahi
          1 intel-wired-lan
          1 ath12k
          1 oe-linux-nfc
          1 oe-chipsec
          1 fsverity
          1 virtio-dev
          1 virtio-comment
          1 ecryptfs
          1 linux-ia64
          1 kdevops
          1 kbd
          1 autofs
          1 cpufreq
          1 dccp
          1 cgroups
          1 devicetree-spec
          1 devicetree-compiler
          1 initramfs
          1 hail-devel
          1 kvm-ia64
          1 linux-8086
          1 kernel-testers
          1 linux-btrace
          1 linux-embedded
          1 linux-hams
          1 linux-hotplug
          1 linux-laptop
          1 trinity
          1 reiserfs-devel
          1 linux-metag
          1 linux-x25
          1 linux-nilfs
          1 lvs-devel
          1 netfilter
          1 linux-oxnas
          1 lm-sensors
          1 lvm-devel
          1 acpica-devel
          1 virtio-fs
          1 smatch
          1 fuego
          1 accel-config
          1 wireless-regdb
          1 netfs
          1 powertop
          1 dtrace
          1 sophgo

git clone https://yhbt.net/lore/pub/scm/linux/kernel/git/axboe/liburing.git