The Apache Kafka C/C++ library
Copyright (c) 2012-2020, 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.
masterbranch is actively developed, use latest release for production use.
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.
You can download and install librdkafka using the vcpkg dependency manager:
# Install vcpkg if not already installed $ git clone https://github.com/Microsoft/vcpkg.git $ cd vcpkg $ ./bootstrap-vcpkg.sh $ ./vcpkg integrate install
$ 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.
The GNU toolchain GNU make pthreads 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)
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-staticto enable static ZStd linking. MacOSX example:
STATIC_LIB_libzstd=$(brew ls -v zstd | grep libzstd.a$) ./configure --enable-static
./configure # 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
make 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).
Refer to the examples GitHub repo for code connecting to a cloud streaming data service based on Apache Kafka
Link your program with
Commercial support is available from Confluent Inc
Only the last official release is supported for community members.
File bug reports, feature requests and questions using GitHub Issues
Questions and discussions are also welcome on the Confluent Community slack #clients channel.
See Powered by librdkafka for an incomplete list of librdkafka users.