Pure C#
No native DLLs to ship. No interop overhead. Just C# all the way down, from the wire protocol to the API you call. Runs anywhere .NET runs.
Zero-Allocation Hot Paths
We obsess over allocations so you don't have to. Span<T>,ref struct, and buffer pooling keep GC pressure out of your critical paths.
Modern .NET
Built for .NET 10+ with all the good stuff: nullable reference types,IAsyncEnumerable, ValueTask, and patterns you're already using.
Simple API
Fluent builders that guide you to valid configurations. Presets for common scenarios. You'll be productive in minutes, not hours.
Full Kafka Support
Transactions, idempotent producers, consumer groups, exactly-once semantics, all compression codecs—everything you'd expect.
Pluggable
Bring your own serializers, compression codecs, or Schema Registry. Use what makes sense for your project.
Quick Example
Producer
await using var producer = Dekaf
.CreateProducer<string, string>()
.WithBootstrapServers("localhost:9092")
.ForReliability()
.Build();
var metadata = await producer.ProduceAsync(
"orders",
orderId,
orderJson
);
Console.WriteLine($"Sent to partition {metadata.Partition}");Consumer
await using var consumer = Dekaf
.CreateConsumer<string, string>()
.WithBootstrapServers("localhost:9092")
.WithGroupId("order-processor")
.SubscribeTo("orders")
.Build();
await foreach (var msg in consumer.ConsumeAsync(ct))
{
await ProcessOrderAsync(msg.Value);
}