Table of Contents |
---|
Starting with the 0.8 release we are maintaining all but the jvm client external to the main code base. The reason for this is that it allows a small group of implementers who know that language to quickly iterate on that client. Having these maintained centrally was becoming a bottleneck as the main committers can't hope to know every programming language that has a client. This lead to a scenario where the committers were attempting to review and test code they didn't understand. We are instead moving to the redis/memcached model which seems to work better at supporting a rich ecosystem of high quality clients.
For 0.8.x
...
0.8 changes the protocol fairly substantially. This version hasn't been released yet. The new protocol is documented here. A number of clients are in progress, and we will update when they are complete.
0.1-
...
0.7.x
...
Java
Maintained with the main code base.
C
Native C library with Consumer, Producer and compression support.
...
Maintainer: Magnus Edenhill
License: 2-clause BSD
C++
https://github.com/quipo/kafka-cpp
Erlang
erlkafka is a kafka client written in erlang
...
Maintainer: Milind Parikh
*License: BSD, LGPL
Also:
https://github.com/wooga/kafka-erlang
PHP
PHP library with Consumer (simple and Zookeeper-based), Producer and compression support (release notes).
...
Maintainer: Lorenzo Alberton
License: Apache v.2.0
Also:
https://github.com/michal-harish/kafka-php
Python
Protocol support for Kafka 0.7 in Python. GZip and Snappy compression supported
Maintainer: David Arthur
License: Apache v.2.0
https://github.com/mumrah/kafka-python
Also:
https://github.com/dsully/pykafka
Maintainer: David Arthur: Dan Sulley
License: Apache v.2.02.0
Ruby
https://github.com/acrosa/kafka-rb
Maintainer: Alejandro Crosa
License:: Apache 2.0
Event machine client:
https://github.com/groupme/em-kafka
JRuby Event stream processor
https://github.com/wooga/kafkaesque
Clojure
https://github.com/pingles/clj-kafka
https://github.com/miniway/kafka-clj
Go
https://github.com/nuance/kafka
https://github.com/jdamick/kafka.go
Node.js
Low-level protocol support in node.js.
https://github.com/cainus/Prozess
https://npmjs.org/package/prozess
Maintainer: Gregg Caines
License: MIT
Alternate node client from Tagged
https://github.com/marcuswestin/node-kafka
Also:
https://github.com/dannycoates/franz-kafka
Client Libraries Previously Supported
https://svn.apache.org/repos/asf/incubator/kafka/branches/legacy_client_libraries