Kлиенты для работы с Kafka

Kлиенты (сlients) для работы с Apache Kafka доступны на многих языках программирования.

В ADS предусмотрена возможность установки клиентских библиотек для различных языков, которые обеспечивают как низкоуровневый доступ к Kafka, так и потоковую обработку более высокого уровня.

Клиенты Kafka позволяют создавать распределенные приложения и микросервисы, которые считывают, записывают и обрабатывают потоки событий параллельно, в масштабе и отказоустойчивым образом даже в случае проблем с сетью или сбоев машины.

Kafka поставляется с некоторыми такими клиентами, которые дополняются десятками клиентов, предоставляемых сообществом Kafka.

ПРИМЕЧАНИЕ

Информация о клиентах Kafka приведена в качестве справочной информации. Представленные клиенты являются независимыми проектами с открытым исходным кодом.

Ниже приведен перечень известных и поддерживаемых на данный момент клиентов Kafka.

Язык реализации Клиент Описание

C/C++

librdkafka

Надежная высокопроизводительная библиотека C/C++ с полной поддержкой протоколов, поверх которой построено множество других языковых привязок, включая Haskell, Node.js, OCaml, PHP, Python, Ruby, C#/.NET

libkafka

Собственная библиотека C++ с поддержкой протоколов для метаданных, производства, выборки и смещения

libkafka-asio

Клиентская библиотека Kafka только для заголовков C++ с использованием Boost Asio

csi-kafka

Асинхронная библиотека producer/consumer C++ 11 для Apache Kafka на основе Boost Asio

libasynckafkaclient

Однопоточная асинхронная библиотека на основе C++

kafka-cpp

Клиент C++ для Kafka. Библиотека, позволяющая создавать сообщения для распределенной службы обмена сообщениями публикации/подписки Kafka

Python

Высокопроизводительный клиент Python на основе librdkafka с полной поддержкой протокола

kafka-python

Реализация на чистом Python с полной поддержкой протокола. Включены реализации consumer и producer, поддерживается сжатие GZIP, LZ4 и Snappy

pykafka

Драйвер Python с полной поддержкой протокола, Pythonic API и управляемой сбалансированной реализацией consumer

pykafka

Позволяет создавать сообщения для распределенной службы обмена сообщениями публикации/подписки Kafka

pykafka

Удобный для программиста клиент Kafka для Python. Он включает реализации producer и consumer Kafka на Python, которые дополнительно поддерживаются расширением, созданным на основе librdkafka

pykafkap

Клиент Python от Urban Airship — простой клиент producer Kafka для Python

brod

Позволяет создавать сообщения для распределенной службы обмена сообщениями публикации/подписки Kafka (producer, simple consumer, ZK-consumer)

Go (AKA golang)

sarama

Клиентская библиотека Go для Apache Kafka, лицензированная MIT.Чистая реализация с полной поддержкой протокола. Включены реализации consumer и producer, поддерживается сжатие GZIP и Snappy

Kлиент Kafka Confluent для Golang включает в себя библиотеку librdkafka, обеспечивая полную поддержку протокола Kafka с высокой производительностью и надежностью

Реализация Pure Go обеспечивает полную поддержку протокола, высокую производительность и поддержку всех KIP, обращенных к клиенту

Erlang

brod

Клиентская библиотека Kafka на Erlang. Полная поддержка потребительского протокола, очень эффективная реализация producer

ekaf

Минималистичный высокопроизводительный клиент Kafka на Erlang

erlkafka

kafka-erlang

Клиент Kafka, написанный на Erlang

PowerShell

Клиент PowerShell с поддержкой Producer, Consumer, Admin. Дополнительно из PowerShell можно запускать все доступные инструменты. Полный список доступных команд по использованию KNet PowerShell можно найти в статье KNet: PowerShell Module

.NET

KNet

Комплексный пакет .NET для Apache Kafka, предоставляющий все функции: Producer, Consumer, Admin, Streams, Connect, серверные части (ZooKeeper и Kafka)

confluent-kafka-dotnet

Полнофункциональный клиент .NET для Apache Kafka на основе librdkafka

kafka-net

Клиент C# с полной поддержкой протокола. Включает в себя consumer, producer, компоненты более низкого уровня и поддержку gzip (без быстрой загрузки)

kafka-net

Реализация .NET клиента для Kafka с использованием C# для Kafka 0.8, охватывает большинство основных функций, включая простые producer и consumer

CSharpClient-for-Kafka

Реализация .NET клиента для Kafka, обеспечивающая базовую функциональность через классы Producer/Consumer. Проект также предлагает сбалансированную потребительскую реализацию. Проект является ответвлением клиента ExactTarget Kafka-net

kafka4net

Асинхронный клиент C#, поддерживающий сжатие и отслеживание изменения партиции-лидера

kafka-sharp

Высокопроизводительный драйвер .NET Kafka

kafunk

Полнофункциональный собственный клиент F#, работающий на .NET Core

Clojure

kafka-fast

Быстрый Kafka API для языков JVM, реализованный в Сlojure

clj-kafka

Оболочка для Java API, обеспечивающая взаимодействие с Kafka

Клиентская библиотека Kafka clojure

Предоставляет producer и consumer, которые поддерживают базовый API выборки, а также интерфейс управляемой последовательности

Ruby

Karafka

Многопоточная эффективная среда обработки Kafka на Ruby и Rails. На основе librdkafka

WaterDrop

Автономная библиотека, часть Karafka для создания сообщений Kafka

Racecar

Простой фреймворк для написания consumer Kafka на Ruby, который хорошо интегрируется с Rails, на основе ruby-kafka

DeliveryBoy

Простой способ публиковать сообщения в Kafka из приложений Ruby, на основе ruby-kafka

EM-Kafka

Драйвер EventMachine для Kafka

ruby-kafka

Клиентская библиотека Ruby для Apache Kafka

Node.js

node-rdkafka

Высокопроизводительный клиент NodeJS для Apache Kafka, являющийся оболочкой собственной библиотеки librdkafka

Kafka-node

Клиент NodeJS с интеграцией ZooKeeper

node-kafka-0.8-plus

Реализация JavaScript для NodeJS Server с поддержкой Vagrant и Docker

Оболочка Nodejs для JAVA Kafka API

Поддержка низкоуровневого протокола в Node.js

Aльтернативный node-клиент от Tagged

Proxy (HTTP REST, etc)

Dory

Daemon-producer для Apache Kafka, упрощает работу клиентов, отправляющих сообщения в Kafka, освобождая их от сложности прямого взаимодействия с кластером Kafka

dropwizard-kafka-http

Этот проект создает конечную точку HTTP Apache Kafka для создания и использования сообщений. Он построен на платформе Dropwizard, которая делает службы Java REST удобными для оператора и простыми в развертывании

Kafka HTTP

Конечная точка Rest предоставляет доступ к собственным высокоуровневым API-интерфейсам consumer и producer Scala

Предоставляет интерфейс RESTful для кластера Kafka

Kafka-Pixy

Proxy-сервер с двойным API (gRPC и REST) ​​для Kafka с автоматическим контролем consumer groups. Он разработан, чтобы скрыть сложность клиентского протокола Kafka и предоставить простой API, который тривиально реализуется на любом языке

Kastle

Эффективный Proxy-сервер Kafka REST для producer

KastleX

Полнофункциональный Proxy-сервер HTTP REST для Kafka в Elixir с аутентификацией на основе JWT

Perl

Включены реализации Pure Perl, producer и consumer, интеграция с ZooKeeper, поддерживается сжатие GZIP и Snappy

stdin/stdout

kcat

Универсальный producer и consumer без JVM для Apache Kafka

PHP

phpkafka

Расширение PHP, построенное на librdkafka

PHP Kafka client

Cтабильный, готовый к работе и быстрый клиент Kafka для PHP на основе librdkafka

Библиотека PHP с consumer (простой и на основе ZooKeeper), producer и поддержкой сжатия

Rust

Реализация Pure Rust с поддержкой запросов Metadata, Produce, Fetch и Offset. Поддерживает сжатие Gzip и Snappy

Alternative Java

Krackle

Клиент Kafka, предназначенный для минимизации количества создаваемых объектов и, следовательно, для сокращения накладных расходов на сборку "мусора"

Storm

storm-kafka-0.8-plus

Клиент Kafka, является частью Apache Storm

Scala DSL

scala-kafka

DSL для разработчиков Scala, который можно использовать для создания и использования сообщений с помощью Kafka

Swift

Franz

Клиент Kafka для iOS и macOS, реализующий swift producer, а также simple и high-level consumer

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней