Skip to content

LGouellec/kafka-streams-dotnet

develop
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

.NET Stream Processing Library for Apache Kafka TM Β· GitHub license Β· Join the chat at https://discord.gg/J7Jtxum build

Package Nuget version Downloads
Streamiz.Kafka.Net Nuget (with prereleases) Nuget
Streamiz.Kafka.Net.SchemaRegistry.SerDes Nuget (with prereleases) Nuget
Streamiz.Kafka.Net.SchemaRegistry.SerDes.Avro Nuget (with prereleases) Nuget
Streamiz.Kafka.Net.SchemaRegistry.SerDes.Protobuf Nuget (with prereleases) Nuget
Streamiz.Kafka.Net.SchemaRegistry.SerDes.Json Nuget (with prereleases) Nuget
Streamiz.Kafka.Net.Metrics.Prometheus Nuget (with prereleases) Nuget

Quality Statistics

Sonar Cloud Quality Gate Sonar Cloud Quality Gate Sonar Cloud Reliability Rate Sonar Cloud Security Rate Sonar Cloud Maintainability Rate Sonar Cloud Duplicated Code

Project Statistics

GitHub issues GitHub pull requests


Streamiz Kafka .NET is .NET stream processing library for Apache Kafka.

KAFKA is a registered trademark of The Apache Software Foundation and
has been licensed for use by Streamiz. Streamiz has no
affiliation with and is not endorsed by The Apache Software Foundation.

It's allowed to develop .NET applications that transform input Kafka topics into output Kafka topics. It's supported .NET Standard 2.1.

It's a rewriting inspired by Kafka Streams. Finally it will provide the same functionality as Kafka Streams.

This project is being written. Thanks for you contribution !

Try it with Gitpod

Open in Gitpod

Step 1

Waiting run task is complete. The task is consider complete some seconds after viewing this message "πŸš€ Enjoy Streamiz the .NET Stream processing library for Apache Kafka (TM)"

Step 2

Switch to producer terminal and send sentences or word. The sample case is "Count the number words" similar to here

Step 3

Switch to consumerterminal and check aggregation result

ROADMAP

  • 1.4.0 - Async processor, Processor API
  • 1.5.0 - Interactive Queries, Standby Replica

Documentation

Read the full documentation on https://lgouellec.github.io/kafka-streams-dotnet/

Installation

Nuget packages are listed to nuget.org

Install the last version with :

dotnet add package Streamiz.Kafka.Net

Usage

There, a sample streamiz application :

static async System.Threading.Tasks.Task Main(string[] args)
{ 
    var config = new StreamConfig<StringSerDes, StringSerDes>();
    config.ApplicationId = "test-app";
    config.BootstrapServers = "localhost:9092";
    
    StreamBuilder builder = new StreamBuilder();

    var kstream = builder.Stream<string, string>("stream");
    var ktable = builder.Table("table", InMemory<string, string>.As("table-store"));

    kstream.Join(ktable, (v, v1) => $"{v}-{v1}")
           .To("join-topic");

    Topology t = builder.Build();
    KafkaStream stream = new KafkaStream(t, config);

    Console.CancelKeyPress += (o, e) => {
        stream.Dispose();
    };

    await stream.StartAsync();
}

Contributing

Owners:

Maintainers:

Streamiz Kafka .Net is a community project. We invite your participation through issues and pull requests! You can peruse the contributing guidelines.

When adding or changing a service please add tests and documentations.

Support

You can found support here