You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Python 3.14.7 free-threading build (main, Aug 11 2026, 15:54:45) [GCC 15.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import liburing
>>> ring = liburing.Ring()
Traceback (most recent call last):
File "<python-input-1>", line 1, in <module>
ring = liburing.Ring()
^^^^^^^^^^^^^
File "/home/gabadie/git/bunny/.env/3.14.7t/lib/python3.14t/site-packages/dynamic_import/module.py", line 84, in __getattr__
raise AttributeError(error) from None
AttributeError: module 'liburing' has no attribute 'Ring'
This library uses https://pyoz.dev/ if that library add that feature, I can look into making it work with this library.
As for the error you are getting, it looks like you are using the older version of Liburing, try to remove the old version first and install the new version, or install directly from github.
I just did some digging on your mention about using a older version of liburing. The issue I've found is that from a normal 3.14.7 venv I can do pip install liburing and automatically the lattest to date 2026.3.30, but if I do the same on a 3.14.7t free threaded environement pip does pick up 2024.5.3 instead.
Here is what I have done to test on ubuntu 26.04.1 x86_64 on a threadripper:
downloaded zig0.17 tar ball and added to PATH;
pip install . as stated by README of your dev branch (precisely at commit ff48de7) on my 3.15.0t venv;
modified my code base to use the liburing code path I use to have for 3.14.x non free threading for all my file access again;
run my code base automated tests;
All green!
Noticed pip install of liburing on a 3.14.7t did fail with error message requiring 3.15, but that is fine for me as my only dependency missing for full upgrade to 3.15.0t at the moment is pytorch which should be in 2.15 released on october 28.
Great work and thanks for taking the time to tackle this request, it is well apreciated. Eagerly looking forward for the next liburing release so it is easier to install with pip. :)
I wasn't sure when free-threading was added so started using 3.15. Let me know if you want a back port to Python 3.13/3.14 I can add that if not might keep the project starting from 3.15+
I want this project to finally go into stable, currently (alpha), so will make it happen over the winter time. Will add benchmarks, ...
Granted I'm nobody to express any desire on your awesome library here, I'll only share my opinion here in complete humility without any pretension of any kind.
Disclosure on the background I have using free threading: I have not tried 3.13t myself, because well it was first release, experimental, too worried of thread race bugs sinking to much of my time, so I did wait to mature first. I did try 3.14t and for my use case it works great. The performance is as advertised, slight slow down in single threaded but going wide in same process is solved, which is huge performance gain because removing a tones of inter process communication. I did hit a thread race on memoryview slicing that is still existing but is work arroundable. But I did get a performance loss on file loading switching to aiofiles temporarily instead of liburing.
Another library I used is orjson and while I did manage to get it working on 3.14t with ORJSON_BUILD_FREETHREADED environement variable on the pip install using cp314t avoiding some funcitonality like numpy array serialisation that is crashing in 3.14, it too only added full official support only with 3.15 thanks to the abi3t. So I humbly think official support in liburing of free threading starting 3.15 is totally reasonable and in in fact is not the first to do so.
There is still some successful machine learning library like https://github.com/autogluon/autogluon that somehow despite their success is still not supporting python 3.14 officially one year after release, but my experience liburing is the best solution to maxout many NVMe SSD read in single python thread & process for custom machine learning data set loading and caching on disk, because solution like aiofiles does not scales with multiprocessing as it ends up thread bombing your machine. So I would be cautious there to make sure support of liburing for previous non free threading version of python is still a thing.
Good news is I did backport it to using 3.14/t (cant do 3.13t too much breakage), but the new changes in root.zig sets .gil = true, and makes the whole t totally useless. Thus the rabbit hole we go... I will have it fixed at some point :-)
Activity
YoSTEALTH commentedon Aug 14, 2026
This library uses https://pyoz.dev/ if that library add that feature, I can look into making it work with this library.
As for the error you are getting, it looks like you are using the older version of Liburing, try to remove the old version first and install the new version, or install directly from github.
gabadie commentedon Aug 24, 2026
I just did some digging on your mention about using a older version of liburing. The issue I've found is that from a normal 3.14.7 venv I can do pip install liburing and automatically the lattest to date 2026.3.30, but if I do the same on a 3.14.7t free threaded environement pip does pick up 2024.5.3 instead.
YoSTEALTH commentedon Oct 20, 2026
I have started adding new changes to
devbranch https://github.com/YoSTEALTH/Liburing/tree/dev it has the free-threading support you were looking for.gabadie commentedon Oct 20, 2026
That is fantastic news, thank you very much! I will give it a try!
gabadie commentedon Oct 20, 2026
Here is what I have done to test on ubuntu 26.04.1 x86_64 on a threadripper:
Noticed pip install of liburing on a 3.14.7t did fail with error message requiring 3.15, but that is fine for me as my only dependency missing for full upgrade to 3.15.0t at the moment is pytorch which should be in 2.15 released on october 28.
Great work and thanks for taking the time to tackle this request, it is well apreciated. Eagerly looking forward for the next liburing release so it is easier to install with pip. :)
YoSTEALTH commentedon Oct 20, 2026
I wasn't sure when free-threading was added so started using 3.15. Let me know if you want a back port to Python 3.13/3.14 I can add that if not might keep the project starting from 3.15+
I want this project to finally go into stable, currently (alpha), so will make it happen over the winter time. Will add benchmarks, ...
gabadie commentedon Oct 21, 2026
Granted I'm nobody to express any desire on your awesome library here, I'll only share my opinion here in complete humility without any pretension of any kind.
Disclosure on the background I have using free threading: I have not tried 3.13t myself, because well it was first release, experimental, too worried of thread race bugs sinking to much of my time, so I did wait to mature first. I did try 3.14t and for my use case it works great. The performance is as advertised, slight slow down in single threaded but going wide in same process is solved, which is huge performance gain because removing a tones of inter process communication. I did hit a thread race on memoryview slicing that is still existing but is work arroundable. But I did get a performance loss on file loading switching to aiofiles temporarily instead of liburing.
Another library I used is orjson and while I did manage to get it working on 3.14t with ORJSON_BUILD_FREETHREADED environement variable on the pip install using cp314t avoiding some funcitonality like numpy array serialisation that is crashing in 3.14, it too only added full official support only with 3.15 thanks to the abi3t. So I humbly think official support in liburing of free threading starting 3.15 is totally reasonable and in in fact is not the first to do so.
There is still some successful machine learning library like https://github.com/autogluon/autogluon that somehow despite their success is still not supporting python 3.14 officially one year after release, but my experience liburing is the best solution to maxout many NVMe SSD read in single python thread & process for custom machine learning data set loading and caching on disk, because solution like aiofiles does not scales with multiprocessing as it ends up thread bombing your machine. So I would be cautious there to make sure support of liburing for previous non free threading version of python is still a thing.
YoSTEALTH commentedon Oct 21, 2026
Good news is I did backport it to using 3.14/t (cant do 3.13t too much breakage), but the new changes in root.zig sets
.gil = true,and makes the wholettotally useless. Thus the rabbit hole we go... I will have it fixed at some point :-)YoSTEALTH commentedon Oct 23, 2026
Current https://github.com/YoSTEALTH/Liburing/tree/dev has working 3.14/t, if you feel the need for a test drive.