Skip to content

python free threading support? #33

Open

Description

@gabadie

Hi!

I was wondering if you envisioned adding support for python free threading since 3.15 seams to be coming with stable ABI.

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'

Many thanks!

Activity

  1. YoSTEALTH commented on Aug 14, 2026

    @YoSTEALTH
    Owner

    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.

  2. gabadie commented on Aug 24, 2026

    @gabadie
    Author

    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.

  3. YoSTEALTH commented on Oct 20, 2026

    @YoSTEALTH
    Owner

    I have started adding new changes to dev branch https://github.com/YoSTEALTH/Liburing/tree/dev it has the free-threading support you were looking for.

  4. gabadie commented on Oct 20, 2026

    @gabadie
    Author

    That is fantastic news, thank you very much! I will give it a try!

  5. gabadie commented on Oct 20, 2026

    @gabadie
    Author

    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. :)

  6. YoSTEALTH commented on Oct 20, 2026

    @YoSTEALTH
    Owner

    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, ...

  7. gabadie commented on Oct 21, 2026

    @gabadie
    Author

    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.

  8. YoSTEALTH commented on Oct 21, 2026

    @YoSTEALTH
    Owner

    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 :-)

  9. YoSTEALTH commented on Oct 23, 2026

    @YoSTEALTH
    Owner

    Current https://github.com/YoSTEALTH/Liburing/tree/dev has working 3.14/t, if you feel the need for a test drive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions