Kafka сlients
Clients for working with Apache Kafka are available in many programming languages.
ADS provides the ability to install client libraries for various languages that provide both low-level access to Kafka and higher-level stream processing.
Kafka clients allow you to create distributed applications and microservices that read, write, and process event streams in parallel, at scale, and in a fault-tolerant manner, even in the event of network problems or machine failures.
Kafka comes with some of these clients, which are complemented by dozens of clients provided by the Kafka community.
NOTE
Information about Kafka clients is provided as a reference. Featured clients are independent open source projects. |
Below is a list of currently known and supported Kafka clients.
Implementation language | Client | Description |
---|---|---|
C/C++ |
A robust, high-performance C/C++ library with full protocol support, built on top of many other language bindings, including Haskell, Node.js, OCaml, PHP, Python, Ruby, C#/.NET |
|
Native C++ library with protocol support for metadata, production, sampling, and offset |
||
Kafka client library for C++ headers only using Boost Asio |
||
C++ 11 asynchronous producer/consumer library for Apache Kafka based on Boost Asio |
||
Single-threaded asynchronous library based on C++ |
||
C++ client for Apache Kafka. A library that allows you to create messages for a distributed Kafka publish/subscribe messaging service |
||
Python |
High performance Python client based on librdkafka with full protocol support |
|
Pure Python implementation with full protocol support; сonsumer and producer implementations included; GZIP, LZ4 and Snappy compression supported |
||
Python driver with full protocol support, Pythonic API, and managed balanced consumer implementation |
||
Allows you to create messages for the distributed Kafka publish/subscribe messaging service |
||
A programmer-friendly Kafka client for Python. It includes implementations of Kafka producers and consumers in Python, which are additionally supported by an extension built on top of librdkafka |
||
Urban Airship Python client --simple Kafka producer client for Python |
||
Allows you to create messages for the Kafka publish/subscribe distributed messaging service (producer, simple consumer, ZK-consumer) |
||
Go (AKA golang) |
Kafka client library Go licensed by MIT; сlean implementation with full protocol supported; consumer and producer implementations included; GZIP and Snappy compression supported |
|
The Kafka Confluent client for Golang includes the librdkafka library, providing full Kafka protocol support with high performance and reliability |
||
Pure Go implementation provides full protocol support, high performance, and support for all client-facing KIPs |
||
Erlang |
Erlang Kafka client library. Full consumer protocol support, very efficient manufacturer implementation |
|
Minimalist high-performance Kafka client in Erlang |
||
Kafka client written in Erlang |
||
PowerShell |
PowerShell client with producer, consumer, admin support. Additionally, you can run all available tools from PowerShell. For a complete list of available commands for using KNet PowerShell, see KNet: PowerShell Module |
|
.NET |
KNet is a comprehensive .NET package for Apache Kafka providing all the features: producer, consumer, admin, streams, connect, backends (ZooKeeper and Kafka) |
|
Full featured .NET client for Apache Kafka based on librdkafka |
||
Pure C# client with full protocol support. Includes consumer, producer, lower-level components, and gzip support (no fastload) |
||
This .NET client implementation for Kafka using C# covers most of the core functionality, including a simple producer and consumer |
||
A .Net implementation of the Apache Kafka protocol that provides basic functionality through the producer/consumer classes. The project also offers a balanced consumer implementation. The project is a fork of the ExactTarget Kafka-net client |
||
C# client, asynchronous, compression supported, transparently tracking changes to the leading partition |
||
High performance .NET Kafka driver |
||
Full featured native F# client running on .NET Core |
||
Clojure |
Fast Kafka API for JVM languages implemented in Сlojure |
|
Wrapper for Java API to interact with Kafka |
||
Kafka client library for clojure |
||
Provides a producer and consumer that support the underlying sampling API as well as a controlled sequencing interface |
||
Ruby |
Multi-threaded efficient Kafka processing framework on Ruby and Rails. Based on librdkafka |
|
Standalone library, part of Karafka, for creating Kafka messages |
||
A simple framework for writing Kafka consumers in Ruby that integrates well with Rails, based on ruby-kafka |
||
An easy way to publish messages to Kafka from Ruby applications, based on ruby-kafka |
||
EventMachine Driver for Kafka |
||
Ruby client library for Apache Kafka |
||
Node.js |
A high-performance NodeJS client for Apache Kafka that wraps a native library librdkafka |
|
NodeJS client with ZooKeeper integration |
||
JavaScript implementation for NodeJS Server with Vagrant and Docker support |
||
Nodejs wrapper for the JAVA Kafka API |
||
Low-level protocol support in Node.js |
||
Alternative node client from Tagged |
||
Proxy (HTTP REST, etc) |
Producer daemon for Apache Kafka that simplifies the work of clients sending messages to Kafka, freeing them from the complexity of directly interacting with the Kafka cluster |
|
This project creates an Apache Kafka HTTP endpoint for creating and consuming messages. It is built on the Dropwizard platform which makes Java REST services operator friendly and easy to deploy |
||
The Rest endpoint provides access to Scala’s native high-level consumer and producer API |
||
Provides a RESTful interface to a Kafka cluster |
||
Dual API (gRPC and REST) proxy server for Kafka with automatic consumer group control. It is designed to hide the complexity of the Kafka client protocol and provide a simple API that is trivial to implement in any language |
||
Efficient Kafka REST Proxy for message producers |
||
Full featured HTTP REST Proxy for Kafka in Elixir with JWT-based authentication |
||
Perl |
Pure Perl implementation that supports producer and consumer, ZooKeeper integration, GZIP and Snappy compression |
|
stdin/stdout |
Generic producer and consumer without JVM for Kafka |
|
PHP |
PHP extension built on librdkafka |
|
Stable, ready to go and fast Kafka client for PHP based on librdkafka |
||
PHP library with consumer (simple and based on ZooKeeper), producer and compression support |
||
Rust |
Pure Rust implementation with support for Metadata, produce, fetch and offset queries. Supports Gzip and Snappy compression |
|
Alternative Java |
A Kafka client designed to minimize the number of objects created and therefore reduce garbage collection overhead |
|
Storm |
Kafka client that is a part of Apache Storm |
|
Scala DSL |
DSL for Scala developers to create and consume messages with Kafka |
|
Swift |
Kafka client for iOS and macOS that includes swift producer implementation, and simple and high-Level consumer |