diff options
author | David Arthur <mumrah@gmail.com> | 2013-04-02 20:18:55 -0400 |
---|---|---|
committer | David Arthur <mumrah@gmail.com> | 2013-04-02 20:21:07 -0400 |
commit | fd45ca59336f01d84ba0d04ab855c94903d67d52 (patch) | |
tree | 9777915d9e7a19c151353b0d8f927a0a4349567b | |
parent | c275c023c5958c3b2b7d1aaf8642f2475d7780c8 (diff) | |
download | kafka-python-fd45ca59336f01d84ba0d04ab855c94903d67d52.tar.gz |
Update README and setup.py with new version
-rw-r--r-- | README.md | 99 | ||||
-rw-r--r-- | setup.py | 2 |
2 files changed, 57 insertions, 44 deletions
@@ -1,12 +1,13 @@ # Kafka Python client -This module provides low-level protocol support Apache Kafka. It implements the five basic request types -(and their responses): Produce, Fetch, MultiFetch, MultiProduce, and Offsets. Gzip and Snappy compression -is also supported. +This module provides low-level protocol support for Apache Kafka as well as +high-level consumer and producer classes. Request batching is supported by the +protocol as well as broker-aware request routing. Gzip and Snappy compression +is also supported for message sets. -Compatible with Apache Kafka 0.7x. Tested against 0.8 +Compatible with Apache Kafka 0.8.1 -http://incubator.apache.org/kafka/ +http://kafka.apache.org/ # License @@ -14,7 +15,47 @@ Copyright 2013, David Arthur under Apache License, v2.0. See `LICENSE` # Status -Current version is 0.2-alpha. This version is under development, APIs are subject to change +I'm following the version numbers of Kafka, plus one number to indicate the +version of this project. The current version is 0.8.1-1. This version is under +development, APIs are subject to change. + +# Usage + +## High level + +```python +from kafka.client import KafkaClient +from kafka.consumer import SimpleConsumer +from kafka.producer import SimpleProducer + +kafka = KafkaClient("localhost", 9092) + +producer = SimpleProducer(kafka, "my-topic") +producer.send_messages("some message") +producer.send_messages("this method", "is variadic") + +consumer = SimpleConsumer(kafka, "my-group", "my-topic") +for message in consumer: + print(message) + +kafka.close() +``` + +## Low level + +```python +from kafka.client import KafkaClient +kafka = KafkaClient("localhost", 9092) +req = ProduceRequest(topic="my-topic", partition=1, + messages=[KafkaProdocol.encode_message("some message")]) +resps = kafka.send_produce_request(payloads=[req], fail_on_error=True) +kafka.close() + +resps[0].topic # "my-topic" +resps[0].partition # 1 +resps[0].error # 0 (hopefully) +resps[0].offset # offset of the first message sent in this request +``` # Install @@ -60,11 +101,14 @@ pip install python-snappy # Tests -Some of the tests will fail if Snappy is not installed. These tests will throw NotImplementedError. If you see other failures, -they might be bugs - so please report them! +Some of the tests will fail if Snappy is not installed. These tests will throw +NotImplementedError. If you see other failures, they might be bugs - so please +report them! ## Run the unit tests +_These are broken at the moment_ + ```shell python -m test.unit ``` @@ -81,42 +125,11 @@ cd kafka-src ./sbt package ``` -Then from the root directory, run the integration tests +Next start up a ZooKeeper server on localhost:2181 ```shell -python -m test.integration +/opt/zookeeper/bin/zkServer.sh start ``` -# Usage - -## High level - -```python -from kafka.client import KafkaClient - -producer = SimpleProducer(kafka, "my-topic") -producer.send_messages("some message") -producer.send_messages("this method", "is variadic") - -consumer = SimpleConsumer(kafka, "my-group", "my-topic") -for message in consumer: - print(message) - -kafka.close() -``` - -## Low level - -```python -from kafka.client import KafkaClient -kafka = KafkaClient("localhost", 9092) -req = ProduceRequest(topic="my-topic", partition=1, - messages=[KafkaProdocol.encode_message("some message")]) -resps = kafka.send_produce_request(payloads=[req], fail_on_error=True) -kafka.close() - -resps[0].topic # "my-topic" -resps[0].partition # 1 -resps[0].error # 0 (hopefully) -resps[0].offset # offset of the first message sent in this request -``` +This will actually start up real Kafka brokers and send messages in using the +client. @@ -2,7 +2,7 @@ from distutils.core import setup setup( name="kafka-python", - version="0.2-alpha", + version="0.8.1-1", author="David Arthur", author_email="mumrah@gmail.com", url="https://github.com/mumrah/kafka-python", |