Kafka SDK List
Learn how to choose the right client libraries for Kafka and explore the Kafka Client Libraries SDK list
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.
Something looks wrong? Send us an email at feedback [at] conduktor [dot] io
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.
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:
Schema Registry Client for Go: compatible with Confluent Kafka Go
Segment's Kafka Go: pure Go implementation of the Kafka Client, good support
.NET / C#
Confluent REST Proxy: REST API for Kafka. Deploy with a reverse proxy sidecar to implement the security mechanism you need. Historically needed, but now that client library support for Kafka is quite good, you migh not have a use case for it.
simply use the standard Java library