NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1942 most downloaded on PyPI
Mixed sync-async queue to interoperate between asyncio tasks and classic threads
Last release 2 years ago
no release in 18 months
Ships unpredictably
gaps range from 2 weeks to 2.9 years
Nearly every release is documented
notes for 19 of 21 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
21 releases · first in 2015
Implement .shutdown(immediate=False) for both sync and async APIs #720
Implement .shutdown(immediate=False) for both sync and async APIs #720
The change is not fully backward compatible:
If the queue is closed, janus.AsyncQueueShutDown and
janus.SyncQueueShutDown exceptions are raised instead of RuntimeError.
Both sync and async .task_done() and .join() don't raise any exception
on queue shutdown/closing anymore; it is compatible with shutdown behavior
of stdlib sync and async queues.
Optimize internal implementation for a little speedup #699
Optimize internal implementation for a little speedup #699
Make not-full and not-empty notifications faster #703
Add .aclose() async method #709
Reduce notifications for a minor speedup #704
Allow janus.Queue() instantiation without running asyncio event loop #710
Remove sync notifiers for a major speedup #714
Fix hang in AsyncQueue.join() #716
One column per quarter.
Drop Python 3.7 and 3.8 support
Drop Python 3.7 and 3.8 support
janus now works on Python 3.9-3.13
Reexport SyncQueueEmpty, SyncQueueFull, AsyncQueueEmpty, and AsyncQueueFull names #680
Janus is marked as stable, no API changes was made for years
Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374
Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374
Fix Python 3.10 compatibility #358
Fix Python 3.10 compatibility #358
Raise RuntimeError on queue.join() after queue closing. #295
Raise RuntimeError on queue.join() after queue closing. #295
Replace timeout type from Optional[int] to Optional[float] #267
Drop Python 3.5, the minimal supported version is Python 3.6
Drop Python 3.5, the minimal supported version is Python 3.6
Support Python 3.9
Refomat with black
Remove explicit loop arguments and forbid creating queues outside event loops #246
Drop python 3.4 support and fix minimal version python3.5.3 #88
Changes ======= - Fixed python3.7 support #97
Fixed bug with join() in case tasks are added by sync_q.put() #75
Expose unfinished_tasks property #34
Expose unfinished_tasks property #34
- Restore tarball deploying
Restore tarball deploying
- Fix exception type
Fix exception type
Fix python setup.py test command
python setup.py test commandThe library supports Python 3.5 from now
The library supports Python 3.5 from now
Use loop.time() instead of time.monotonic()
Minor release, no new features
Documentation update, sync versions and tags
Documentation update, sync versions and tags
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →