Skip to content

treziac/rdkafka

 
 

Repository files navigation

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.

Usage

Just reference the RdKafka NuGet package

Examples

Producing messages

using (Producer producer = new Producer("127.0.0.1:9092"))
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, "127.0.0.1:9092"))
{
    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"});
    consumer.Start();

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

More

See examples/

Documentation

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.

About

C# Apache Kafka client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%