1liburing-2.8 release 2- Add support for incrementally/partially consumed provided buffers, 3 usable with the provided buffer ring support. 4- Add support for foo_and_wait_min_timeout(), where it's possible to 5 define a minimum timeout for waiting to get batches of completions, 6 but if that fails, extend for a longer timeout without having any 7 extra context switches. 8- Add support for using different clock sources for completion waiting. 9- Great increase coverage of test cases, test case improvements and 10 fixes. 11- Man page updates 12- Don't leak _GNU_SOURCE via pkb-config --cflags 13- Support for address sanitizer 14- Add examples/kdigest sample program 15- Add discard helper, test, and man page 16 17liburing-2.7 release 18 19- Man page updates 20- Sync with kernel 6.10 21 - send/recv bundle support 22 - accept nowait and CQE_F_MORE 23- Add and update test cases 24- Fix io_uring_queue_init_mem() returning a value that was too small, 25 potentially causing memory corruption in userspace by overwriting 26 64 bytes beyond the returned value. Also add test case for that. 27- Add 64-bit length variants of io_uring_prep_{m,f}advise() 28- Add BIND/LISTEN support and helpers / man pages 29- Add io_uring_enable_rings.3 man page 30- Fix bug in io_uring_prep_read_multishot() 31- Fixup bundle test cases 32- Add fixed-hugepage test case 33- Fix io_uring_prep_fixed_fd_install.3 man page 34- Note 'len' == 0 requirement in io_uring_prep_send.3 man page 35- Fix some test cases for skipping on older kernels 36 37liburing-2.6 release 38 39- Add getsockopt and setsockopt socket commands 40- Add test cases to test/hardlink 41- Man page fixes 42- Add futex support, and test cases 43- Add waitid support, and test cases 44- Add read multishot, and test cases 45- Add support for IORING_SETUP_NO_SQARRAY 46- Use IORING_SETUP_NO_SQARRAY as the default 47- Add support for IORING_OP_FIXED_FD_INSTALL 48- Add io_uring_prep_fixed_fd_install() helper 49- Support for napi busy polling 50- Improve/add test cases 51- Man page fixes 52- Add sample 'proxy' example 53 54liburing-2.5 release 55 56- Add support for io_uring_prep_cmd_sock() 57- Add support for application allocated ring memory, for placing rings 58 in huge mem. Available through io_uring_queue_init_mem(). 59- Add support for registered ring fds 60- Various documentation updates 61- Various fixes 62 63liburing-2.4 release 64 65- Add io_uring_{major,minor,check}_version() functions. 66- Add IO_URING_{MAJOR,MINOR,CHECK}_VERSION() macros. 67- FFI support (for non-C/C++ languages integration). 68- Add io_uring_prep_msg_ring_cqe_flags() function. 69- Deprecate --nolibc configure option. 70- CONFIG_NOLIBC is always enabled on x86-64, x86, and aarch64. 71- Add support for IORING_REGISTER_USE_REGISTERED_RING and use if available. 72- Add io_uring_close_ring_fd() function. 73- Add io_uring_prep_msg_ring_fd_alloc function. 74- Add io_uring_free_buf_ring() and io_uring_setup_buf_ring() functions. 75- Ensure that io_uring_prep_accept_direct(), io_uring_prep_openat_direct(), 76 io_uring_prep_openat2_direct(), io_uring_prep_msg_ring_fd(), and 77 io_uring_prep_socket_direct() factor in being called with 78 IORING_FILE_INDEX_ALLOC for allocating a direct descriptor. 79- Add io_uring_prep_sendto() function. 80- Add io_uring_prep_cmd_sock() function. 81 82liburing-2.3 release 83 84- Support non-libc build for aarch64. 85- Add io_uring_{enter,enter2,register,setup} syscall functions. 86- Add sync cancel interface, io_uring_register_sync_cancel(). 87- Fix return value of io_uring_submit_and_wait_timeout() to match the 88 man page. 89- Improvements to the regression tests 90- Add support and test case for passthrough IO 91- Add recv and recvmsg multishot helpers and support 92- Add documentation and support for IORING_SETUP_DEFER_TASKRUN 93- Fix potential missing kernel entry with IORING_SETUP_IOPOLL 94- Add support and documentation for zero-copy network transmit 95- Various optimizations 96- Many cleanups 97- Many man page additions and updates 98 99liburing-2.2 release 100 101- Support non-libc builds. 102- Optimized syscall handling for x86-64/x86/aarch64. 103- Enable non-lib function calls for fast path functions. 104- Add support for multishot accept. 105- io_uring_register_files() will set RLIMIT_NOFILE if necessary. 106- Add support for registered ring fds, io_uring_register_ring_fd(), 107 reducing the overhead of an io_uring_enter() system call. 108- Add support for the message ring opcode. 109- Add support for newer request cancelation features. 110- Add support for IORING_SETUP_COOP_TASKRUN, which can help reduce the 111 overhead of io_uring in general. Most applications should set this flag, 112 see the io_uring_setup.2 man page for details. 113- Add support for registering a sparse buffer and file set. 114- Add support for a new buffer provide scheme, see 115 io_uring_register_buf_ring.3 for details. 116- Add io_uring_submit_and_wait_timeout() for submitting IO and waiting 117 for completions with a timeout. 118- Add io_uring_prep_{read,write}v2 prep helpers. 119- Add io_uring_prep_close_direct() helper. 120- Add support for SQE128 and CQE32, which are doubly sized SQE and CQE 121 rings. This is needed for some cases of the new IORING_OP_URING_CMD, 122 notably for NVMe passthrough. 123- ~5500 lines of man page additions, including adding ~90 new man pages. 124- Synced with the 5.19 kernel release, supporting all the features of 125 5.19 and earlier. 126- 24 new regression test cases, and ~7000 lines of new tests in general. 127- General optimizations and fixes. 128