Skip to main content
PURE C# APACHE KAFKA CLIENT

Kafka,
fluent in C#.

A high-performance Kafka client built for modern .NET—without a JVM, native dependencies, or interop standing between you and the wire.

No JVM No native DLLs .NET 10+
LIVE MESSAGE FLOW
dekaf / producer connected
RUNTIME.NET 10
PROTOCOLnative
HOT PATH0 B / msg
TOPIC / ordersPARTITIONS / 03
P0
B1
P1
B2
P2
B3
> produced orders/2 at offset 481516
wire
speed
ENGINEERED DIFFERENTLY

Lose the baggage.
Keep the protocol.

Dekaf speaks Kafka natively and embraces the strengths of the .NET runtime. The result is a smaller operational footprint and an API that belongs in your codebase.

Managed, all the way down

From the Kafka wire protocol to the API you call: pure C# that runs anywhere modern .NET runs.

Zero-allocation hot paths

Span<T>, ref structs, pooled buffers, and ValueTask keep GC pressure away from message processing.

An API that feels like .NET

Fluent builders guide valid configuration. Nullable types and async streams work exactly as you expect.

Kafka, fully covered

Transactions, idempotence, consumer groups, exactly-once semantics, headers, and every compression codec.

Compose your own stack

Bring serializers, codecs, Schema Registry, dependency injection, and hosting integrations.

FROM ZERO TO MESSAGES

Your first message.
On the wire in minutes.

Sensible presets handle the deep Kafka knowledge. Fluent builders keep every choice visible and let you tune when you need to.

Follow the quickstart
C#
await using var producer = Kafka
    .CreateProducer<string, Order>()
    .WithBootstrapServers("localhost:9092")
    .ForReliability()
    .Build();

var result = await producer.ProduceAsync(
    "orders", order.Id, order);

Console.WriteLine(
    $"partition {result.Partition} · offset {result.Offset}");
readyUTF-8
READY WHEN YOU ARE

Take Java out of the equation.

Read the docs