Consumers
- Refactor SimpleConsumer internal fetch handling (dpkp #399)
- Handle exceptions in SimpleConsumer commit() and reset_partition_offset() (dpkp #404)
- Improve FailedPayloadsError handling in KafkaConsumer (dpkp #398)
- KafkaConsumer: avoid raising KeyError in task_done (dpkp #389)
- MultiProcessConsumer -- support configured partitions list (dpkp #380)
- Fix SimpleConsumer leadership change handling (dpkp #393)
- Fix SimpleConsumer connection error handling (reAsOn2010 #392)
- Improve Consumer handling of 'falsy' partition values (wting #342)
- Fix _offsets call error in KafkaConsumer (hellais #376)
- Fix str/bytes bug in KafkaConsumer (dpkp #365)
- Register atexit handlers for consumer and producer thread/multiprocess cleanup (dpkp #360)
- Always fetch commit offsets in base consumer unless group is None (dpkp #356)
- Stop consumer threads on delete (dpkp #357)
- Deprecate metadata_broker_list in favor of bootstrap_servers in KafkaConsumer (dpkp #340)
- Support pass-through parameters in multiprocess consumer (scrapinghub #336)
- Enable offset commit on SimpleConsumer.seek (ecanzonieri #350)
- Improve multiprocess consumer partition distribution (scrapinghub #335)
- Ignore messages with offset less than requested (wkiser #328)
- Handle OffsetOutOfRange in SimpleConsumer (ecanzonieri #296)
Producers
- Add Murmur2Partitioner (dpkp #378)
- Log error types in SimpleProducer and SimpleConsumer (dpkp #405)
- SimpleProducer support configuration of fail_on_error (dpkp #396)
- Deprecate KeyedProducer.send() (dpkp #379)
- Further improvements to async producer code (dpkp #388)
- Add more configuration parameters for async producer (dpkp)
- Deprecate SimpleProducer batch_send=True in favor of async (dpkp)
- Improve async producer error handling and retry logic (vshlapakov #331)
- Support message keys in async producer (vshlapakov #329)
- Use threading instead of multiprocessing for Async Producer (vshlapakov #330)
- Stop threads on
__del__
(chmduquesne #324) - Fix leadership failover handling in KeyedProducer (dpkp #314)
KafkaClient
- Add .topics property for list of known topics (dpkp)
- Fix request / response order guarantee bug in KafkaClient (dpkp #403)
- Improve KafkaClient handling of connection failures in _get_conn (dpkp)
- Client clears local metadata cache before updating from server (dpkp #367)
- KafkaClient should return a response or error for each request - enable better retry handling (dpkp #366)
- Improve str/bytes conversion in KafkaClient and KafkaConsumer (dpkp #332)
- Always return sorted partition ids in client.get_partition_ids_for_topic() (dpkp #315)
Documentation
- Cleanup Usage Documentation
- Improve KafkaConsumer documentation (dpkp #341)
- Update consumer documentation (sontek #317)
- Add doc configuration for tox (sontek #316)
- Switch to .rst doc format (sontek #321)
- Fixup google groups link in README (sontek #320)
- Automate documentation at kafka-python.readthedocs.org
Internals
- Switch integration testing from 0.8.2.0 to 0.8.2.1 (dpkp #402)
- Fix most flaky tests, improve debug logging, improve fixture handling (dpkp)
- General style cleanups (dpkp #394)
- Raise error on duplicate topic-partition payloads in protocol grouping (dpkp)
- Use module-level loggers instead of simply 'kafka' (dpkp)
- Remove pkg_resources check for
__version__
at runtime (dpkp #387) - Make external API consistently support python3 strings for topic (kecaps #361)
- Fix correlation id overflow (dpkp #355)
- Cleanup kafka/common structs (dpkp #338)
- Use context managers in gzip_encode / gzip_decode (dpkp #337)
- Save failed request as FailedPayloadsError attribute (jobevers #302)
- Remove unused kafka.queue (mumrah)