Apache Kafka only officially provides an SDK for the Java language. For the other languages, these are community based implementations. A list of recommended SDK has been compiled below to save you a little bit of time.
Feedback?Something looks wrong? Send us an email at feedback [at] conduktor [dot] io

How to choose a Kafka client library?

Usually most of the libraries will have support for the producer and consumer API. Decisions points come around the following:
  • Pure implementation or librdkafka based: librdkafka is a C/C++ library that implements the Kafka API and many libraries are built as a wrapper around it. This may be acceptable to you, or not. The main issues can arise when you build and deploy your software.
  • Does it support your security mechanism? Most libraries will for sure support PLAINTEXT, but ensure it supports the security mechanism you need for your Kafka deployment: SSL and SASL (SASL/SCRAM, SASL/OAUTHBEARER, SASL/GSSAPI, SASL/PLAIN, or even external SASL mechanisms such as SASL IAM for MSK)
  • Does it support the Confluent Schema Registry? The Confluent Schema Registry is a common implementation in a Kafka deployment, and making sure your libraries have the proper serializers and deserializers for it is very important. Usually, Confluent libraries do a good job at integrating with the Confluent Schema Registry. If it supports the Schema Registry, does it support Avro, JSON, or Protobuf? (based on your decisions)
  • Does it support the performance you need? This is usually the case, but make sure to do performance testing before going with a full blown implementation. This may save you some time.

Kafka client libraries SDK list

Here you can find a list of libraries that has been compiled to ensure you have some pointers on when to start with your implementation: