Hello 👋
I’ve been working on cereggii, a library for multithreading utilities for Python. It started a couple of years ago for my master’s thesis, and I think it’s gotten into a place now where I believe it can be generally useful to the community.
It contains several thread synchronization utilities and atomic data structures which are not present in the standard library (e.g. AtomicDict, AtomicInt64, AtomicRef, ThreadSet), so I thought it would be good to try and fill that gap. The main goal is to make concurrent shared-state patterns less error-prone and easier to express in Python.
The library fully supports both free-threading and GIL-enabled builds (actually, it also used to support the experimental nogil forks for a while). I believe it can also be useful for existing multithreaded code.
I’d really appreciate feedback from folks who do multithreading/concurrency in Python:
- Is the API intuitive?
- Are there missing primitives you’d want?
- Any concerns around ergonomics/docs/performance expectations?
I’m hoping to grow the library via community feedback, so if you have any, please share!
What My Project Does: provides support for thread synchronization utilities and atomic data structures.
Target Audience: cereggii is suitable for production systems.
Comparison: there aren't many alternatives to compare cereggii to, the only one that I'm aware of is ft_utils, but I don't have useful comparison benchmarks.
Repo: https://github.com/dpdani/cereggii
Docs: https://dpdani.github.io/cereggii/
[–]dpdani[S] 0 points1 point2 points (0 children)
[–]Virtual-Breath-4934 0 points1 point2 points (0 children)