C# Apache Kafka client
Switch branches/tags
Nothing to show
Clone or download


This project has moved to https://github.com/confluentinc/confluent-kafka-dotnet and is now being maintained by Confluent

Please update to Confluent.Kafka.

rdkafka-dotnet - C# Apache Kafka client

Travis Build Status Appveyor Build Status Gitter chat

Copyright (c) 2015-2016, Andreas Heider

rdkafka-dotnet is a C# client for Apache Kafka based on librdkafka.

rdkafka-dotnet is licensed under the 2-clause BSD license.


Just reference the RdKafka NuGet package


Producing messages

using (Producer producer = new Producer(""))
using (Topic topic = producer.Topic("testtopic"))
    byte[] data = Encoding.UTF8.GetBytes("Hello RdKafka");
    DeliveryReport deliveryReport = await topic.Produce(data);
    Console.WriteLine($"Produced to Partition: {deliveryReport.Partition}, Offset: {deliveryReport.Offset}");

Consuming messages

var config = new Config() { GroupId = "example-csharp-consumer" };
using (var consumer = new EventConsumer(config, ""))
    consumer.OnMessage += (obj, msg) =>
        string text = Encoding.UTF8.GetString(msg.Payload, 0, msg.Payload.Length);
        Console.WriteLine($"Topic: {msg.Topic} Partition: {msg.Partition} Offset: {msg.Offset} {text}");

    consumer.Subscribe(new []{"testtopic"});

    Console.WriteLine("Started consumer, press enter to stop consuming");


See examples/


Read the API Documentation here

Read the FAQ for answers to common questions

Supported Platforms and .NET Releases

Requires .NET 4.5 or later. Tested with .NET Core on Linux, OS X and Windows, and classic .NET 4.5 on Windows.