Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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