Skip to main content

Pure Python client for Apache Kafka

Project description

https://img.shields.io/badge/kafka-0.9%2C%200.8.2%2C%200.8.1%2C%200.8-brightgreen.svg https://img.shields.io/pypi/pyversions/kafka-python.svg https://coveralls.io/repos/dpkp/kafka-python/badge.svg?branch=master&service=github https://travis-ci.org/dpkp/kafka-python.svg?branch=master https://img.shields.io/badge/license-Apache%202-blue.svg
>>> pip install kafka-python

kafka-python is a client for the Apache Kafka distributed stream processing system. It is designed to function much like the official java client, with a sprinkling of pythonic interfaces (e.g., iterators).

KafkaConsumer

>>> from kafka import KafkaConsumer
>>> consumer = KafkaConsumer('my_favorite_topic')
>>> for msg in consumer:
...     print (msg)

KafkaConsumer is a full-featured, high-level message consumer class that is similar in design and function to the new 0.9 java consumer. Most configuration parameters defined by the official java client are supported as optional kwargs, with generally similar behavior. Gzip and Snappy compressed messages are supported transparently.

In addition to the standard KafkaConsumer.poll() interface (which returns micro-batches of messages, grouped by topic-partition), kafka-python supports single-message iteration, yielding ConsumerRecord namedtuples, which include the topic, partition, offset, key, and value of each message.

By default, KafkaConsumer will attempt to auto-commit message offsets every 5 seconds. When used with 0.9 kafka brokers, KafkaConsumer will dynamically assign partitions using the kafka GroupCoordinator APIs and a RoundRobinPartitionAssignor partitioning strategy, enabling relatively straightforward parallel consumption patterns. See ReadTheDocs for examples.

KafkaProducer

<in progress - see SimpleProducer for legacy producer implementation>

Protocol

A secondary goal of kafka-python is to provide an easy-to-use protocol layer for interacting with kafka brokers via the python repl. This is useful for testing, probing, and general experimentation. The protocol support is leveraged to enable a KafkaClient.check_version() method that probes a kafka broker and attempts to identify which version it is running (0.8.0 to 0.9).

Low-level

Legacy support is maintained for low-level consumer and producer classes, SimpleConsumer and SimpleProducer. See ReadTheDocs for API details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gc-kafka-python-0.9.8.tar.gz (123.4 kB view details)

Uploaded Source

File details

Details for the file gc-kafka-python-0.9.8.tar.gz.

File metadata

File hashes

Hashes for gc-kafka-python-0.9.8.tar.gz
Algorithm Hash digest
SHA256 b68bdf0952e4baea534442c36a334ad75fcb31c209c79a3947cb61867a898eec
MD5 9a760084b2d276bc1fc4614372becf41
BLAKE2b-256 060eaccfc40501b35d0bcfe6d5c82cd23f2443099727fb2d2d2e9fdfbe2ebd3a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page