Aiokafka Versions Save

asyncio client for kafka

v0.6.1.dev0

3 years ago

v0.6.0

4 years ago

New features:

  • Add async context manager support for both Producer and Consumer. (pr #613 and #494 by @nimish)
  • Upgrade to kafka-python version 2.0.0 and set it as non-strict parameter. (issue #590 by @yumendy and #558 by @originalgremlin)
  • Make loop argument optional (issue #544)
  • SCRAM-SHA-256 and SCRAM-SHA-512 support for SASL authentication (issue #571 and pr #588 by @SukiCZ)
  • Added headers param to AIOKafkaProducer.send_and_wait (pr #553 by @megabotan)
  • Add 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)
  • Change all code base to async-await (pr #522)
  • Minor: added PR and ISSUE templates to GitHub

Bugfixes:

  • Ignore debug package generation on bdist_rpm command. (issue #599 by @gabriel-tincu)
  • UnknownMemberId was raised to the user instead of retrying on auto commit. (issue #611)
  • Fix issue with messages not being read after subscriptions change with group_id=None. (issue #536)
  • Handle RequestTimedOutError in coordinator._do_commit_offsets() method to explicitly mark coordinator as dead. (issue #584 and pr #585 by @FedirAlifirenko)
  • Added handling asyncio.TimeoutError on metadata request to broker and metadata update. (issue #576 and pr #577 by @MichalMazurek)
  • Too many reqs on kafka not available (issue #496 by @lud4ik)
  • Consumer.seek_to_committed now returns mapping of committed offsets (pr #531 by @ask)
  • Message Accumulator: add_message being recursive eventually overflows (pr #530 by @ask)

Improved Documentation:

  • Clarify auto_offset_reset usage. (pr 601 by @dargor)
  • Fix spelling errors in comments and documentation using codespell (pr #567 by mauritsvdvijgh)
  • Delete old benchmark file (issue #546 by @jeffwidman)
  • Fix a few typos in docs (pr #573 and pr #563 by @ultrabug)
  • Fix typos, spelling, grammar, etc (pr #545 and pr #547 by @jeffwidman)
  • Fix typo in docs (pr #541 by @pablogamboa)
  • Fix documentation for benchmark (pr #537 by @abhishekray07)
  • Better logging for bad CRC (pr #529 by @ask)

v0.5.2

4 years ago

Bugfixes:

  • Fix ConnectionError breaking metadata sync background task (issue #517 and #512)
  • Fix event_waiter reference before assignment (pr #504 by @romantolkachyov)
  • Bump version of kafka-python

v0.5.1

5 years ago

New features:

  • 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". (Big thanks to @cyrbil and @jsurloppe for working on this)
  • Added support for max_poll_interval_ms and rebalance_timeout_ms settings ( issue #67)
  • Added pause/resume API for AIOKafkaConsumer. (issue #304)
  • Added header support to both AIOKafkaConsumer and AIOKafkaProducer for brokers v0.11 and above. (issue #462)

Bugfixes:

  • Made sure to not request metadata for all topics if broker version is passed explicitly and is 0.10 and above. (issue #440, thanks to @ulrikjohansson)
  • Make sure heartbeat task will close if group is reset. (issue #372)

v0.5.0

5 years ago

New features:

  • Add full support for V2 format messages with a Cython extension. Those are used for Kafka >= 0.11.0.0
  • Added support for transactional producing (issue #182)
  • Added support for indempotent producing with enable_idempotence parameter
  • Added support for fetch_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 partitions

Bugfixes:

  • Fix issue with connections not propagating serialization errors
  • Fix issue with group=None resetting offsets on every metadata update (issue #441)
  • Fix issue with messages not delivered in order when Leader changes (issue #228)
  • Fixed version parsing of api_version parameter. Before it ignored the parameter

v0.4.3

5 years ago

Fix issue #444 and #436 related to a memory leak in asyncio.shield()

v0.4.2

5 years ago

The work here was concentrated on fixing bugs after the coordination refactors on v0.4.0. Hope it will serve you better now!

Bugfix:

  • Added error propagation from coordinator to the main consumer. Before consumer just stopped with error logged. (issue #294)
  • Fix manual partition assignment, broken in 0.4.0 (issue #394)
  • Fixed RecursionError in MessageAccumulator.add_message (issue #409)
  • Update kafka-python to latest 1.4.3 and added support for Python3.7
  • Dropped support for Python3.3 and Python3.4

Infrastructure:

  • Added Kafka 1.0.2 broker for CI test runner
  • Refactored Travis CI build pipeline

v0.4.1

6 years ago
  • Fix issue when offset commit error reports wrong partition in log (issue #353)
  • Add ResourceWarning when Producer, Consumer or Connections are not closed properly (issue #295)
  • Fix Subscription None in GroupCoordinator._do_group_rejoin (issue #306)

v0.4.0

6 years ago

Major changes:

  • Full refactor of the internals of AIOKafkaConsumer. Needed to avoid several race conditions in code (PR #286, fixes #258, #264 and #261)
  • Rewrote Records parsing protocol to allow implementation of newer protocol versions later
  • Added C extension for Records parsing protocol, boosting the speed of produce/consume routines significantly
  • Added an experimental batch producer API for unique cases, where user want's to control batching himself (by @shargan)

Minor changes:

  • Add 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:

  • Fix connections_max_idle_ms option, as earlier it was only applied to bootstrap socket. (PR #299)
  • Fix consumer.stop() side effect of logging an exception ConsumerStoppedError (issue #263)
  • Problem with Producer not able to recover from broker failure (issue #267)
  • Traceback containing duplicate entries due to exception sharing (PR #247 by @Artimi)
  • Concurrent record consumption rasing InvalidStateError('Exception is not set.') (PR #249 by @aerkert)
  • Don't fail GroupCoordinator._on_join_prepare() if commit_offset() throws exception (PR #230 by @shargan)
  • Send session_timeout_ms to GroupCoordinator constructor (PR #229 by @shargan)

Big thanks to:

  • @shargan for Producer speed enhancements and the batch produce API proposal/implementation.
  • @vineet-rh and other contributors for constant feedback on Consumer problems, leading to the refactor mentioned above.

v0.3.1

6 years ago
  • Added AIOKafkaProducer.flush() method. (PR #209 by @vineet-rh)
  • Fixed a bug with uvloop involving float("inf") for timeout. (PR #210 by dmitry-moroz)
  • Changed test runner to allow running tests on OSX. (PR #213 by @shargan)