https://github.com/LGouellec/streamiz
.NET Stream Processing Library for Apache Kafka ๐
https://github.com/LGouellec/streamiz
event-streaming kafka kafka-streams kafka-streams-dotnet kafka-streams-net streamiz
Last synced: 4 days ago
JSON representation
.NET Stream Processing Library for Apache Kafka ๐
- Host: GitHub
- URL: https://github.com/LGouellec/streamiz
- Owner: LGouellec
- License: mit
- Created: 2020-01-03T13:07:44.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2025-03-21T22:30:45.000Z (about 1 month ago)
- Last Synced: 2025-04-30T21:32:52.564Z (4 days ago)
- Topics: event-streaming, kafka, kafka-streams, kafka-streams-dotnet, kafka-streams-net, streamiz
- Language: C#
- Homepage: https://lgouellec.github.io/streamiz/
- Size: 12.4 MB
- Stars: 495
- Watchers: 29
- Forks: 79
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Roadmap: roadmap.md
Awesome Lists containing this project
- awesome-streaming - Streamiz - a .Net Stream Processing Library for Apache Kafka (Table of Contents / Streaming Library)
README
# .NET Stream Processing Library for Apache Kafka TM ยท [](https://github.com/LGouellec/streamiz/blob/master/LICENSE) ยท [](https://discord.gg/J7Jtxum) 
| Package | Nuget version | Downloads |
|---|---|---|
| Streamiz.Kafka.Net |  |  |
| Streamiz.Kafka.Net.SchemaRegistry.SerDes |  |  |
| Streamiz.Kafka.Net.SchemaRegistry.SerDes.Avro |  |  |
| Streamiz.Kafka.Net.SchemaRegistry.SerDes.Protobuf |  |  |
| Streamiz.Kafka.Net.SchemaRegistry.SerDes.Json |  |  |
| Streamiz.Kafka.Net.Metrics.Prometheus |  |  |
| Streamiz.Kafka.Net.Metrics.OpenTelemetry |  |  |
| Streamiz.Kafka.Net.Azure.RemoteStorage |  |  |## Quality Statistics
[](https://sonarcloud.io/dashboard?branch=master&id=LGouellec_kafka-streams-dotnet)
[](https://sonarcloud.io/dashboard?branch=master&id=LGouellec_kafka-streams-dotnet)
[](https://sonarcloud.io/dashboard?branch=master&id=LGouellec_kafka-streams-dotnet)
[](https://sonarcloud.io/dashboard?branch=master&id=LGouellec_kafka-streams-dotnet)
[](https://sonarcloud.io/dashboard?branch=master&id=LGouellec_kafka-streams-dotnet)
[](https://sonarcloud.io/dashboard?branch=master&id=LGouellec_kafka-streams-dotnet)
----
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.
```# Try it with Gitpod
[](https://gitpod.io/#https://github.com/LGouellec/streamiz)
## 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".
## Step 3
Switch to `consumer`terminal and check aggregation result
# Documentation
Read the full documentation on https://lgouellec.github.io/streamiz/
# Installation
Nuget packages are listed to [nuget.org](https://www.nuget.org/packages/Streamiz.Kafka.Net/)
Install the last version with :
```shell
dotnet add package Streamiz.Kafka.Net
```# Usage
There, a sample streamiz application :
``` csharp
static async System.Threading.Tasks.Task Main(string[] args)
{
var config = new StreamConfig();
config.ApplicationId = "test-app";
config.BootstrapServers = "localhost:9092";
StreamBuilder builder = new StreamBuilder();var kstream = builder.Stream("stream");
var ktable = builder.Table("table", InMemory.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();
}
```# Compare Kafka Streams vs Streamiz
| **_Features_** | **Kafka Streams supported** | **Streamiz supported** | **Comment** |
|:------------------------------------------------------------:|:----------------------------------:|:----------------------:|:------------------------------------------:|
| Stateless processors | X | X | |
| RocksDb store | X | X | |
| Standby replicas | X | | No plan for now |
| InMemory store | X | X | |
| Transformer, Processor API | X | X | |
| Punctuate | X | X | |
| KStream-KStream Join | X | X | |
| KTable-KTable Join | X | X | |
| KTable-KTable FK Join | X | | Plan for 1.8.0 |
| KStream-KTable Join | X | X | |
| KStream-GlobalKTable Join | X | X | |
| External Async Processing | | X | V2 in coming |
| Hopping window | X | X | |
| Tumbling window | X | X | |
| Sliding window | X | | No plan for now |
| Session window | X | | No plan for now |
| Cache | X | X | |
| Suppress(..) | X | X | |
| Interactive Queries | X | | No plan for now |
| State store batch restoring | X | | Plan for 1.8.0 |
| Exactly Once | X | X | |
| Remote storage (Azure, GCP, Aws) | | X | Azure Preview, GCP and AWS coming |# Community Support
Feel free to reach out to our community support [here](https://discord.gg/J7Jtxum) anytime; we're here to help you with any questions or issues you may have!