NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1001 most downloaded on PyPI
Kafka integration with asyncio
Last release 5 months ago
29 Apr 2026
Release timing varies
gaps range from 8 days to 1.2 years
Nearly every release is documented
notes for 30 of 31 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
36 releases · first in 2016
Return back and deprecate api_version parameter in client classes (issue #1147 )
New features:
client_rack option on :class:AIOKafkaConsumer. When set and the brokersFetchRequest v11 (Kafka 2.4+) with a replica.selector.classBugfixes:
AIOKafkaAdminClient (issue #1148)api_version parameter in client classesOne column per quarter.
Return back and deprecate api_version parameter in client classes (issue #1147 )
New features:
client_rack option on :class:AIOKafkaConsumer. When set and the brokersFetchRequest v11 (Kafka 2.4+) with a replica.selector.classBugfixes:
AIOKafkaAdminClient (issue #1148)api_version parameter in client classesResolve API versions at connection with brokers api_version parameter has been removed from the different clients (admin/consumer/producer) (pr #1136
Breaking changes:
api_version parameter has been removed from the different clients (admin/consumer/producer)Improved Documentation:
AIOKafkaConsumer.offset_for_timesBugfixes:
Misc:
Build mac x86_64 wheels (pr #1029 )
New features:
Bugfixes:
Improved Documentation:
Implement DeleteRecords API ( KIP-204 ) (pr #969 by @vmaurin )
New features:
Bugfixes:
AIOKafkaAdminClient.create_partitionsNotControllerError in AIOKafkaAdminClient.create_topics and otherSupport static membership protocol, KIP-345 (issue #680 , pr #941 by @patkivikram and @joshuaherrera )
New features:
Bugfixes:
New features:
Support static membership protocol, KIP-345 (issue #680, pr #941 by @patkivikram and @joshuaherrera)
Bugfixes:
Fix extra dependencies (issue #952)
Support static membership protocol, KIP-345 (issue #680 , pr #941 by @patkivikram and @joshuaherrera )
New features:
Include kafka-python into aiokafka 's code base (issue #928 and others)
New features:
kafka-python into aiokafka's code base (issue #928 and others)python-snappy and zstandard with cramjam (issue #930)pyproject.tomlBugfixes:
ConsumerRecord (pr #912 by @zschumacher)Improved Documentation:
Include kafka-python into aiokafka's code base
New features:
kafka-python into aiokafka's code basepython-snappy and zstandard with cramjampyproject.tomlBugfixes:
ConsumerRecord (pr #912 by @zschumacher)Improved Documentation:
AbstractTokenProvider.token example (pr #919 by @mtomilov)Include kafka-python into aiokafka 's code base
New features:
kafka-python into aiokafka's code basepython-snappy and zstandard with cramjampyproject.tomlBugfixes:
ConsumerRecord (pr #912 by @zschumacher)Improved Documentation:
Drop support for Python 3.7 due to end of life (pr #893)
New features:
Bugfixes:
AIOKafkaAdminClient (issue #889,
pr #890 by @selevit)Improved Documentation:
security_protocol argument docstring (issue #883, pr #884 by
@gabrielmbmb)await for AIOKafkaConsumer.highwater() (pr #858 by
@yi-jiayu)Add codec for ZStandard compression (KIP-110) (pr #801)
New features:
Bugfixes:
KeyError on solitary abort marker (issue #781, pr #782 by @pikulmar)Improved Documentation:
MyRebalancer example in docs/consumer.rst (pr #731 by @aamalev)Fix CancelledError handling in sender (issue #710)
Bugfixes:
CancelledError handling in sender (issue #710)start() method hanging after being idle for more than
max_poll_interval_ms (issue #764)Improved Documentation:
SASL_PLAINTEXT and SASL_SSL to valid values of security protocol
attribute (pr #768 by @pawelrubin)Add deprecation warning when loop argument to AIOKafkaConsumer and AIOKafkaProducer is passed. It's scheduled for removal in 0.8.0 as a preparation st…
Bugfixes:
.so from source distribution to fix usage of sdist tarball
(issue #681 and pr #684 by ods)dataclasses backport package to dependencies for Python 3.6
(pr #690 by @ods)Deprecation:
Improved Documentation:
Producer.send() (issue #566 and
pr #650 by @andreportela)Add support for Python 3.8 and 3.9. (issue #569, pr #669 and #676 by @ods)
New features:
Bugfixes:
Add async context manager support for both Producer and Consumer. (pr #613 and #494 by @nimish)
New features:
consumer.last_poll_timestamp(partition) which gives the ms timestamp of the last
update of highwater and lso. (issue #523 and pr #526 by @aure-olli)Bugfixes:
RequestTimedOutError in coordinator._do_commit_offsets() method to explicitly mark
coordinator as dead. (issue #584 and pr #585 by @FedirAlifirenko)asyncio.TimeoutError on metadata request to broker and metadata update.
(issue #576 and pr #577 by @MichalMazurek)Improved Documentation:
Fix ConnectionError breaking metadata sync background task (issue #517 and #512)
Bugfixes:
Add SASL support with both SASL plain and SASL GGSAPI. Support also includes Broker v0.9.0, but you will need to explicitly pass api_version="0.9". (B
New features:
api_version="0.9".
(Big thanks to @cyrbil and @jsurloppe for working on this)Bugfixes:
Add full support for V2 format messages with a Cython extension. Those are used for Kafka >= 0.11.0.0
New features:
enable_idempotence parameterfetch_max_bytes in AIOKafkaConsumer. This can help limit
the amount of data transferred in a single roundtrip to the broker, which is
essential for consumers with a large number of partitionsBugfixes:
group=None resetting offsets on every metadata update
(issue #441)api_version parameter. Before it ignored the
parameterFix issue #444 and #436 related to a memory leak in asyncio.shield()
Fix issue #444 and #436 related to a memory leak in asyncio.shield()
Bugfix:
Fixed memory issue introduced as a result of a bug in asyncio.shield and not cancelling coroutine after usage. (see issue #444 and #436)
The work here was concentrated on fixing bugs after the coordination refactors on v0.4.0. Hope it will serve you better now!
The work here was concentrated on fixing bugs after the coordination refactors on v0.4.0. Hope it will serve you better now!
Bugfix:
Infrastructure:
Nothing published for this version
Fix issue when offset commit error reports wrong partition in log (issue #353)
Full refactor of the internals of AIOKafkaConsumer. Needed to avoid several race conditions in code (PR #286, fixes #258, #264 and #261)
Major changes:
Minor changes:
timestamp field to produced message's metadata. This is needed to find
LOG_APPEND_TIME configured timestamps.Consumer.seek() and similar API's now raise proper ValueError's on
validation failure instead of AssertionError.Bug fixes:
connections_max_idle_ms option, as earlier it was only applied to
bootstrap socket. (PR #299)consumer.stop() side effect of logging an exception
ConsumerStoppedError (issue #263)InvalidStateError('Exception is not set.') (PR #249 by @aerkert)GroupCoordinator._on_join_prepare() if commit_offset()
throws exception (PR #230 by @shargan)Big thanks to:
Added AIOKafkaProducer.flush() method. (PR #209 by @vineet-rh)
AIOKafkaProducer.flush() method. (PR #209 by @vineet-rh)float("inf") for timeout. (PR #210 by
dmitry-moroz)Starting from 0.3.0 we discourage imports from kafka namespace. Starting from 0.4.0 aiokafka will stop supporting objects imported from kafka namespac
Starting from 0.3.0 we discourage imports from kafka namespace. Starting from 0.4.0 aiokafka will stop supporting objects imported from kafka namespace. Please import from aiokafka namespaces instead.
aiokafka namespace. You will no
longer need to import from kafka namespace.on_partitions_assigned and on_partitions_revoked callbacks. (PR #190
by @ask)offsets_for_times, beginning_offsets, end_offsets
API's. (issue #164)seek_to_end, seek_to_beginning API's. (issue #154)Fixed retry problem in Producer, when buffer is not reset to 0 offset. Thanks to @ngavrysh for the fix in Tubular/aiokafka fork. (issue #184)
Force reconnect after KafkaTimeoutException. (PR #149 by @Artimi)
getmany will no longer return 0 results before timeout. (issue #117)Big thanks to @Artimi for pointing out several of those issues.
Reconnect after KafkaTimeoutException. (PR #149 by @Artimi)
Fixed compacted topic handling. It could skip messages if those were compacted (issue #71)
Fixed old issue with new topics not adding to subscription on pattern (issue #46)
Another fix for Consumer race condition on JoinGroup. This forces Leader to wait for new metadata before assigning partitions. (issue #118)
Changed metadata listener in Coordinator to avoid 2 rejoins in a rare condition (issue #108)
getmany will not return 0 results until we hit timeout. (issue #117)
Big thanks to @Artimi for pointing out several of those issues.
Add a check to wait topic autocreation in Consumer, instead of raising UnknownTopicOrPartitionError (PR #92 by fabregas)
consumer.stop() call. Any new get* calls will result in ConsumerStoppedError (PR #81)exclude_internal_topics option for Consumer (PR #111)group_id (part of PR #111)subscribe and JoinGroup race condition (issue #88). Coordinator will now notice subscription changes during rebalance and will join group again. (PR #106)connections_max_idle_ms config (PR #113)Added SSL support. (PR #81 by Drizzt1991)
next_record recursion (PR #94 by fabregas)max_poll_records option for Consumer (PR #72 by Drizzt1991)Bumped python-kafka version to 1.3.1 and Kafka to 0.10.1.0.
timestamp to be associated with messages.Big thanks to @fabregas for the hard work on this release (PR #60)
Fixed bug with infinite loop on heartbeats with autocommit=True. #44
Fixed bug with infinite loop on heartbeats with autocommit=True. #44
Bumped kafka-python to version 1.1.1
Fixed docker test runner with multiple interfaces
Minor documentation fixes
Added Python3.5 usage example to docs
send_and_wait methodAdded Python3.5 usage example to docs
Don't raise retriable exceptions in 3.5's async for iterator
Fix Cancellation issue with producer's send_and_wait method
Fix packaging issues. Removed unneeded files from package.
Fix packaging issues. Removed unneeded files from package.
Added full support for Kafka 9.0. Older Kafka versions are not tested.
Added full support for Kafka 9.0. Older Kafka versions are not tested.
Initial release
Added full support for Kafka 9.0. Older Kafka versions are not tested.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →