NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1322 most downloaded on PyPI
Compatibility API between asyncio/Twisted/Trollius
Last release 3 months ago
18 Jun 2026
Release timing varies
gaps range from 8 days to 2.4 years
Most releases are documented
notes for 29 of 44 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
44 releases · first in 2015
Logging at warn level on the asyncio backend no longer triggers a DeprecationWarning from the standard library: txaio now dispatches the warn level to…
Fix
Logging at warn level on the asyncio backend no longer triggers a DeprecationWarning from the standard library: txaio now dispatches the warn level to logging.Logger.warning instead of the deprecated .warn alias (#89)
Other
Preserve verified artifact chain-of-custody in the release pipeline, aligning txaio with the rest of the WAMP group. The wheel, source distribution and documentation are now built once in the main workflow and uploaded with upload-artifact-verified; the release workflow download-artifact-verifieds those exact, checksum-verified artifacts (by main run id) and publishes them, instead of rebuilding from source. This guarantees that what is tested is what is shipped (#207)
Auto-publish a GitHub Discussions announcement for nightly and stable releases: a new release-post-comment.yml workflow runs after the release workflow, finds the freshly-created GitHub Release and posts its notes into the Discussions ci-cd category. The category is resolved by name (case-insensitive), so no repo-specific category id is hard-coded. Requires GitHub Discussions enabled on the repository with a ci-cd category (#207)
Align artifact handling with the rest of the WAMP group: CI now uploads build, coverage and documentation artifacts via the shared upload-artifact-verified action (SHA256 chain-of-custody), and the release workflow validates the exact PyPI payload — the universal py3-none-any wheel plus the source distribution — with the shared, fail-closed check-release-fileset action before publishing (#212)
Remove three permanently-skipped legacy tests that exercised the @asyncio.coroutine decorator. That decorator was removed in Python 3.11 (txaio's minimum supported version), so the tests could no longer run on any supported interpreter and only emitted skips (#152)
Bumped the shared wamp-ai and wamp-cicd Git submodules to match the rest of the WAMP project group (zlmdb / autobahn-python 26.6.1) for the coordinated release. The wamp-cicd bump picks up the GHSA-6658 shell-injection hardening in the shared identifiers.yml reusable workflow (untrusted GitHub event fields are now passed via env: as quoted data with a fail-closed branch-name allowlist) (#218)
Declare the ty type checker in the dev extra and run it from the project venv (dropping the separate global uv tool install ty step), so local and CI resolve the same latest ty. Fixed a newly-reported ty invalid-argument-type diagnostic in tx.py (the Twisted ILogObserver is provided via zope.interface @provider, which static checkers cannot follow) with a localized cast rather than a blanket rule ignore. Excluded the .ai / .cicd submodules from ruff (they carry their own linting/CI) (#218)
One column per quarter.
Modernized documentation infrastructure with Furo theme, MyST Markdown support, and sphinx-autoapi for automatic API documentation generation (#210 _)
New
Modernized documentation infrastructure with Furo theme, MyST Markdown support, and sphinx-autoapi for automatic API documentation generation (#210)
Switch from setuptools to Hatchling
Added standardized project badges (PyPI, Python versions, CI, Docs, License, Downloads) to README.md and docs/index.rst
Added comprehensive documentation sections: Installation, Getting Started, Programming Guide, Contributing, and Releases
Added AI assistance documentation under docs/ai/ with acknowledgement and audit files
Fix
Fixed RST badge rendering by setting override_image_directive=False in sphinxcontrib-images configuration
Fixed F841 linting error in sphinx_auto_section_anchors.py (unused variable)
Fixed Incomplete source distribution in 25.12.1: missing tests/util.py (#208)
Other
Updated Sphinx requirement to >=8.2.3 for docs optional dependency
Updated .cicd submodule to latest with linting fix
Standardized conf.py configuration across WAMP ecosystem projects
Phase 1.3: CI/CD Modernization - align workflows with wamp-cicd patterns
New
Phase 1.3: CI/CD Modernization - align workflows with wamp-cicd patterns (#205)
Phase 1.2: Build Tooling Modernization - migrate to src layout, Furo/MyST/AutoAPI docs (#203)
Phase 1.1: Update infrastructure submodules to latest Phase 0 versions (#201)
Migrate from mypy to ty (Astral type checker) for faster type checking
Enable tests and coverage in GitHub Actions
Add coverage report artifact upload
Modernize docs/conf.py with Furo theme, MyST Markdown, sphinx-autoapi
Fix
ci: fix publish-github-releases to skip on PRs
ci: align release.yml with autobahn-python model to prevent accidental releases
fix: minimum Python version specification in pyproject.toml
Fix
fix: minimum Python version specification in pyproject.toml (#198)
setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
New
announcement of upcoming (but not yet effective) new AI policy clarifying matter with respect to AI assisted contributions (see #1663 in AutobahnPython)
Fix
update license file to include contributors (#188)
remove obsolete dependency on six (#186)
update pypy version in CI workflow (#187)
setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
Other
Copyrights transferred from Crossbar.io Technologies GmbH (Germany) to typedef int GmbH (Germany)
Nothing published for this version
copyright transferred to typedef int GmbH - no license change!
Fix
support for Python up to v3.11
update GitHub CI
copyright transferred to typedef int GmbH - no license change!
cancel handling in python 3.8/3.9
Fix
cancel handling in python 3.8/3.9 (#175)
gracefully fail if coroutine called with wrong args (#176)
eliminate redundant dependency on mock (#170)
doc note that twisted supports native coroutines (#172)
update minimum dependencies (here, and in other crossbar packages) in an attempt to tame the new pip dep resolver madness
Fix
update minimum dependencies (here, and in other crossbar packages) in an attempt to tame the new pip dep resolver madness
CI/CD migrated to GitHub Actions
New
CI/CD migrated to GitHub Actions
support Python 3.9 (CI / testing added)
minimum Python version is now 3.6
upload wheel to S3 (bucket "crossbarbuilder") in CI deploy stage
New
upload wheel to S3 (bucket "crossbarbuilder") in CI deploy stage
Fix
fix event loop threading issue (PR #163)
support import-time framework selection
New
support import-time framework selection
Fix
remove python2 support (finally)
moved time_ns and perf_counter_ns helper functions here
New
moved time_ns and perf_counter_ns helper functions here
Other
IMPORTANT: beginning release v20.1.1, we only support Python 3.5 or later
add API to support cancellation; this means passing a 1-argument callable to create_future and txaio.cancel to actually cancel a future
New
add API to support cancellation; this means passing a 1-argument callable to create_future and txaio.cancel to actually cancel a future
support Python 3.7 (CI / testing added)
Other
IMPORTANT: release v18.8.1 is the last release supporting Python 2. We will support Python 3.5 and later beginning with release v20.1.1.
deprecate Python 3.3 support and CI testing
New
move to calver
Other
deprecate Python 3.3 support and CI testing
the asyncio version of make_logger now deduces a proper namespace instead of using the root (thanks spr0cketeer _)
Fix
the asyncio version of make_logger now deduces a proper namespace instead of using the root (thanks spr0cketeer)
(No detailed changelog available)
March 2, 2018
(No detailed changelog available)
no longer install LICENSE file into installation directory (conflicts!)
September 4, 2017
Fix
no longer install LICENSE file into installation directory (conflicts!)
the asyncio version of sleep() correctly returns a Future instance
July 21, 2017
Fix
the asyncio version of sleep() correctly returns a Future instance
asyncio - remove the hacks for "simulating" chained futures (no longer works - cpy36 has native code for future)
June 8, 2017
New
run CI on Python 3.5 and 3.6
Fix
asyncio - remove the hacks for "simulating" chained futures (no longer works - cpy36 has native code for future)
asyncio: example and docs for running multiple loops
May 1, 2017
New
asyncio: example and docs for running multiple loops
asyncio: log exception tracebacks when they're available for error-message
new future creation API for alternate loops
April 15, 2017
New
allow alternate asyncio loops
new future creation API for alternate loops
Nothing published for this version
added inline sleep helper (Twisted only for now)
February 9, 2017
New
added inline sleep helper (Twisted only for now)
avoid giving negative times to callLater with batched timers (issue #81)
December 29, 2016
Fix
avoid giving negative times to callLater with batched timers (issue #81)
Copyrights transferred from Tavendo to Crossbar.io Technologies
November 6, 2016
Fix
fix pytest3/2
fix Sphinx 1.4+ doc building
Other
Copyrights transferred from Tavendo to Crossbar.io Technologies
Bug with make_batched_timer remembering (via a closure) the reactor/event-loop too persistantly
April 28, 2016
Fix
Bug with make_batched_timer remembering (via a closure) the reactor/event-loop too persistantly
Objects returned from the txaio.make_batched_timer API now have millisecond resolution and spread out their notifications over the entire range of the
April 28, 2016
New
Objects returned from the txaio.make_batched_timer API now have millisecond resolution and spread out their notifications over the entire range of the bucket
Other
Document that @coroutine and @inlineCallbacks are not supported
Added txaio.make_batched_timer API. The main use-case for this is when you have lots of of timers, but their exact resolution isn't important; batchin
April 22, 2016
New
Added txaio.make_batched_timer API. The main use-case for this is when you have lots of of timers, but their exact resolution isn't important; batching them into buckets causes far fewer delayed call instances to be outstanding in the underlying event-loop/reactor.
*April 10, 2016* New * added universal wheels
April 10, 2016
New
added universal wheels
More logging infrastructure and APIs to support moving all of Crossbar.io's logging to txaio .. _changelog-previous:
April 9, 2016
New
More logging infrastructure and APIs to support moving all of Crossbar.io's logging to txaio
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
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 →