Kafka-python

Latest version: v2.1.4

Safety actively analyzes 722581 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 8

2.1.4

Fixes
* Dont block pending FetchRequests when Metadata update requested (2576)
* Fix MetadataRequest for no topics (2573)
* Send final error byte x01 on Sasl OAuth failure (2572)
* Reset SASL state on disconnect (2571)
* Try import new Sequence before old to avoid DeprecationWarning

Improvements
* Update Makefile default to 4.0 broker; add make fixture
* Improve connection state logging (2574)

2.1.3

Fixes
* Fix crash when switching to closest compatible api_version in KafkaClient (2567)
* Fix maximum version to send an OffsetFetchRequest in KafkaAdminClient (2563)
* Return empty set from consumer.partitions_for_topic when topic not found (2556)

Improvements
* KIP-511: Use ApiVersions v4 on initial connect w/ client_software_name + version (2558)
* KIP-74: Manage assigned partition order in consumer (2562)
* KIP-70: Auto-commit offsets on consumer.unsubscribe(), defer assignment changes to rejoin (2560)
* Use SubscriptionType to track topics/pattern/user assignment (2565)
* Add optional timeout_ms kwarg to consumer.close() (2564)
* Move ensure_valid_topic_name to kafka.util; use in client and producer (2561)

Testing
* Support KRaft / 4.0 brokers in tests (2559)
* Test older pythons against 4.0 broker

Compatibility
* Add python 3.13 to compatibility list

2.1.2

Fixes
* Simplify consumer.poll send fetches logic
* Fix crc validation in consumer / fetcher
* Lazy `_unpack_records` in PartitionRecords to fix premature fetch offset advance in consumer.poll() (2555)
* Debug log fetch records return; separate offsets update log
* Fix Fetcher retriable error handling (2554)
* Use six.add_metaclass for py2/py3 compatible abc (2551)

Improvements
* Add FetchMetrics class; move topic_fetch_metrics inside aggregator
* DefaultRecordsBatchBuilder: support empty batch
* MemoryRecordsBuilder: support arbitrary offset, skipping offsets
* Add record.validate_crc() for v0/v1 crc checks
* Remove fetcher message_generator / iterator interface
* Add size_in_bytes to ABCRecordBatch and implement for Legacy and Default
* Add magic property to ABCRecord and implement for LegacyRecord

2.1.1

Fixes
* Fix packaging of 2.1.0 in Fedora: testing requires "pytest-timeout". (2550)
* Improve connection error handling when try_api_versions_check fails all attempts (2548)
* Add lock synchronization to Future success/failure (2549)
* Fix StickyPartitionAssignor encode

2.1.0

Support Kafka Broker 2.1 API Baseline
* Add baseline leader_epoch support for ListOffsets v4 / FetchRequest v10 (2511)
* Support OffsetFetch v5 / OffsetCommit v6 (2.1 baseline) (2505)
* Support 2.1 baseline consumer group apis (2503)
* Support FindCoordinatorRequest v2 in consumer and admin client (2502)
* Support ListOffsets v3 in consumer (2501)
* Support Fetch Request/Response v6 in consumer (2500)
* Add support for Metadata Request/Response v7 (2497)
* Implement Incremental Fetch Sessions / KIP-227 (2508)
* Implement client-side connection throttling / KIP-219 (2510)
* Add KafkaClient.api_version(operation) for best available from api_versions (2495)

Consumer
* Timeout coordinator poll / ensure_coordinator_ready / ensure_active_group (2526)
* Add optional timeout_ms kwarg to remaining consumer/coordinator methods (2544)
* Check for coordinator.poll failure in KafkaConsumer
* Only mark coordinator dead if connection_delay > 0 (2530)
* Delay group coordinator until after bootstrap (2539)
* KAFKA-4160: Ensure rebalance listener not called with coordinator lock (1438)
* Call default_offset_commit_callback after `_maybe_auto_commit_offsets_async` (2546)
* Remove legacy/v1 consumer message iterator (2543)
* Log warning when attempting to list offsets for unknown topic/partition (2540)
* Add heartbeat thread id to debug logs on start
* Add inner_timeout_ms handler to fetcher; add fallback (2529)

Producer
* KafkaProducer: Flush pending records before close() (2537)
* Raise immediate error on producer.send after close (2542)
* Limit producer close timeout to 1sec in __del__; use context managers to close in test_producer
* Use NullLogger in producer atexit cleanup
* Attempt to fix metadata race condition when partitioning in producer.send (2523)
* Remove unused partial KIP-467 implementation (ProduceResponse batch error details) (2524)

AdminClient
* Implement perform leader election (2536)
* Support delete_records (2535)

Networking
* Call ApiVersionsRequest during connection, prior to Sasl Handshake (2493)
* Fake api_versions for old brokers, rename to ApiVersionsRequest, and handle error decoding (2494)
* Debug log when skipping api_versions request with pre-configured api_version
* Only refresh metadata if connection fails all dns records (2532)
* Support connections through SOCKS5 proxies (2531)
* Fix OverflowError when connection_max_idle_ms is 0 or inf (2538)
* socket.setblocking for eventlet/gevent compatibility
* Support custom per-request timeouts (2498)
* Include request_timeout_ms in request debug log
* Support client.poll with future and timeout_ms
* mask unused afi var
* Debug log if check_version connection attempt fails

SASL Modules
* Refactor Sasl authentication with SaslMechanism abstract base class; support SaslAuthenticate (2515)
* Add SSPI (Kerberos for Windows) authentication mechanism (2521)
* Support AWS_MSK_IAM authentication (2519)
* Cleanup sasl mechanism configuration checks; fix gssapi bugs; add sasl_kerberos_name config (2520)
* Move kafka.oauth.AbstractTokenProvider -> kafka.sasl.oauth.AbstractTokenProvider (2525)

Testing
* Bump default python to 3.13 in CI tests (2541)
* Update pytest log_format: use logger instead of filename; add thread id
* Improve test_consumer_group::test_group logging before group stabilized (2534)
* Limit test duration to 5mins w/ pytest-timeout
* Fix external kafka/zk fixtures for testing (2533)
* Disable zookeeper admin server to avoid port conflicts
* Set default pytest log level to debug
* test_group: shorter timeout, more logging, more sleep
* Cache servers/dist in github actions workflow (2527)
* Remove tox.ini; update testing docs
* Use thread-specific client_id in test_group
* Fix subprocess log warning; specify timeout_ms kwarg in consumer.poll tests
* Only set KAFKA_JVM_PERFORMANCE_OPTS in makefile if unset; add note re: 2.0-2.3 broker testing
* Add kafka command to test.fixtures; raise FileNotFoundError if version not installed

Documentation
* Improve ClusterMetadata docs re: node_id/broker_id str/int types
* Document api_version_auto_timeout_ms default; override in group tests

Fixes
* Signal close to metrics expire_loop
* Add kafka.util timeout_ms_fn
* fixup TopicAuthorizationFailedError construction
* Fix lint issues via ruff check (2522)
* Make the "mock" dependency optional (only used in Python < 3.3). (2518)

2.0.6

Networking
* Improve error handling in `client._maybe_connect` (2504)
* Client connection / `maybe_refresh_metadata` changes (2507)
* Improve too-large timeout handling in client poll
* Default `client.check_version` timeout to `api_version_auto_timeout_ms` (2496)

Fixes
* Decode and skip transactional control records in consumer (2499)
* try / except in consumer coordinator `__del__`

Testing
* test_conn fixup for py2

Project Maintenance
* Add 2.0 branch for backports

Page 1 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.