The Apache Kafka C/C++ library
Alternatives To Librdkafka
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
10 hours ago1,022apache-2.0Java
Mirror of Apache Kafka
Sarama9,7921,759a day ago152August 11, 2022313mitGo
Sarama is a Go library for Apache Kafka.
Debezium8,276543213 hours ago137September 16, 202261apache-2.0Java
Change data capture for a variety of databases. Please log issues at
2 days ago253otherC
The Apache Kafka C/C++ library
Kafka Ui5,253
10 hours ago287apache-2.0Java
Open-Source Web UI for Apache Kafka Management
Kafka Python5,1481,0103214 days ago36September 30, 2020284apache-2.0Python
Python client for Apache Kafka
Strimzi Kafka Operator3,72929 hours ago34September 06, 2022138apache-2.0Java
Apache Kafka® running on Kubernetes
Goka2,0763172 months ago62July 12, 202218bsd-3-clauseGo
Goka is a compact yet powerful distributed stream processing library for Apache Kafka written in Go.
Spring Kafka1,8531,6912253 days ago160September 19, 202246apache-2.0Java
Provides Familiar Spring Abstractions for Apache Kafka
Kaf1,80927 days ago71July 18, 202260apache-2.0Go
Modern CLI for Apache Kafka, written in Go.
Alternatives To Librdkafka
Select To Compare

Alternative Project Comparisons

librdkafka - the Apache Kafka C/C++ client library

Copyright (c) 2012-2022, Magnus Edenhill.


librdkafka is a C library implementation of the Apache Kafka protocol, providing Producer, Consumer and Admin clients. It was designed with message delivery reliability and high performance in mind, current figures exceed 1 million msgs/second for the producer and 3 million msgs/second for the consumer.

librdkafka is licensed under the 2-clause BSD license.

KAFKA is a registered trademark of The Apache Software Foundation and has been licensed for use by librdkafka. librdkafka has no affiliation with and is not endorsed by The Apache Software Foundation.


  • Full Exactly-Once-Semantics (EOS) support
  • High-level producer, including Idempotent and Transactional producers
  • High-level balanced KafkaConsumer (requires broker >= 0.9)
  • Simple (legacy) consumer
  • Admin client
  • Compression: snappy, gzip, lz4, zstd
  • SSL support
  • Full list of supported KIPs
  • Broker version support: >=0.8 (see Broker version compatibility)
  • Guaranteed API stability for C & C++ APIs (ABI safety guaranteed for C)
  • Statistics metrics
  • Debian package: librdkafka1 and librdkafka-dev in Debian and Ubuntu
  • RPM package: librdkafka and librdkafka-devel
  • Gentoo package: dev-libs/librdkafka
  • Portable: runs on Linux, MacOS X, Windows, Solaris, FreeBSD, AIX, ...


NOTE: The master branch is actively developed, use latest release for production use.


Installing prebuilt packages

On Mac OSX, install librdkafka with homebrew:

$ brew install librdkafka

On Debian and Ubuntu, install librdkafka from the Confluent APT repositories, see instructions here and then install librdkafka:

$ apt install librdkafka-dev

On RedHat, CentOS, Fedora, install librdkafka from the Confluent YUM repositories, instructions here and then install librdkafka:

$ yum install librdkafka-devel

On Windows, reference librdkafka.redist NuGet package in your Visual Studio project.

For other platforms, follow the source building instructions below.

Installing librdkafka using vcpkg

You can download and install librdkafka using the vcpkg dependency manager:

# Install vcpkg if not already installed
$ git clone
$ cd vcpkg
$ ./
$ ./vcpkg integrate install

# Install librdkafka
$ vcpkg install librdkafka

The librdkafka package in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Build from source


The GNU toolchain
GNU make
zlib-dev (optional, for gzip compression support)
libssl-dev (optional, for SSL and SASL SCRAM support)
libsasl2-dev (optional, for SASL GSSAPI support)
libzstd-dev (optional, for ZStd compression support)
libcurl-dev (optional, for SASL OAUTHBEARER OIDC support)

NOTE: Static linking of ZStd (requires zstd >= 1.2.1) in the producer enables encoding the original size in the compression frame header, which will speed up the consumer. Use STATIC_LIB_libzstd=/path/to/libzstd.a ./configure --enable-static to enable static ZStd linking. MacOSX example: STATIC_LIB_libzstd=$(brew ls -v zstd | grep libzstd.a$) ./configure --enable-static


  # Or, to automatically install dependencies using the system's package manager:
  # ./configure --install-deps
  # Or, build dependencies from source:
  # ./configure --install-deps --source-deps-only

  sudo make install

NOTE: See README.win32 for instructions how to build on Windows with Microsoft Visual Studio.

NOTE: See CMake instructions for experimental CMake build (unsupported).

Usage in code

See getting Started with Apache Kafka and C/C++ for a basic tutorial.

  1. Refer to the examples directory for code using:

    • Producers: basic producers, idempotent producers, transactional producers.
    • Consumers: basic consumers, reading batches of messages.
    • Performance and latency testing tools.
  2. Refer to the examples GitHub repo for code connecting to a cloud streaming data service based on Apache Kafka

  3. Link your program with -lrdkafka (C) or -lrdkafka++ (C++).

Commercial support

Commercial support is available from Confluent Inc

Community support

Only the latest official release is supported for community members.

File bug reports and feature requests using GitHub Issues.

Questions and discussions are welcome on the Discussions forum, and on the Confluent Community slack #clients channel.

Language bindings

See Powered by librdkafka for an incomplete list of librdkafka users.

Popular Kafka Projects
Popular Apache Kafka Projects
Popular Data Processing Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
C Plus Plus
Apache Kafka
Kafka Consumer
Kafka Producer