KNet: .NET suite for Apache Kafka™
KNet is a comprehensive .NET suite for Apache Kafka™ that provides direct access to all Apache Kafka™ APIs and features: Producer, Consumer, Admin, Streams, Connect, and KRaft backend support.
KNet client-side features are also compatible with any broker that implements the Kafka wire protocol — see Backend compatibility below.
Libraries and Tools
| KNet | KNetCLI | KNet.Templates | KNetPS | KNetConnect |
|---|---|---|---|---|
Project disclaimer
KNet is a suite for Apache Kafka™, maintained by MASES Group and open to community contributions. Its primary scope is to support other MASES Group projects — both open-source and commercial — though it is freely available for any use. Dedicated community and commercial subscription plans are available. The repository and releases may contain bugs. The release cycle follows the Apache Kafka™ release cycle, with additional releases driven by critical issues or enhancement requests from this or other dependent projects.
Looking for Apache Kafka™ expertise? MASES Group can help you design, build, deploy, and manage Apache Kafka™ clusters and streaming applications. Find out more.
Scope of the project
This project aims to create a set of libraries and tools to directly access, from .NET, all the features available in the Apache Kafka™ binary distribution.
There are many client libraries written to manage communication with Apache Kafka™. Conversely, this project uses the Java™ packages released from The Apache Foundation directly, providing several benefits:
- all implemented features are available at no extra implementation costs — see KNet usage;
- avoids any third-party communication protocol implementation;
- access to all features made available from Apache Kafka™: the most important are Apache Kafka™ Streams and Apache Kafka™ Connect, which have no native C# implementation;
- measured high performance in many operating conditions.
Currently the project tries to support, at our best, the supported Apache Kafka™ binary distribution:
| KNet | State | Apache Kafka™ | Branch | .NET Framework | .NET | JVM™ |
|---|---|---|---|---|---|---|
| 3.x.x | Active | 4.x.x | master | |||
| 2.9.* | Active | 3.9.x | release/2.9.X | |||
| 2.8.* | Deprecated | 3.8.* | release/2.8.X | |||
| 2.7.* | Deprecated | 3.7.* | release/2.7.X | |||
| 2.6.* | Deprecated | 3.6.* | release/2.6.X |
The Apache Kafka™ packages are downloaded from:
| kafka-streams-scala_2.13 | kafka-tools | kafka-shell | |
|---|---|---|---|
| connect-mirror | connect-file | connect-basic-auth-extension | trogdor |
| --- | --- | --- | --- |
Backend compatibility
KNet uses the official Apache Kafka™ Java client packages directly. This architecture has a direct impact on backend compatibility: not all KNet features have the same compatibility scope.
Client-side features — Producer, Consumer, Admin Client, Kafka Streams, KNet Streams SDK, KNet Connect SDK, KNetPS scriptable cmdlets — communicate with the broker exclusively through the Kafka wire protocol and are therefore compatible with any broker that implements it, not only Apache Kafka™ itself.
Examples of compatible brokers: Redpanda, Amazon MSK, Confluent Platform / Cloud, Aiven for Apache Kafka™, IBM Event Streams, WarpStream, AutoMQ, and others.
Important: KNet also includes server-side features to start and manage Apache Kafka™ broker nodes, ZooKeeper™ nodes, and KRaft controllers (via KNetCLI, KNetPS, and Docker images). These features are specific to Apache Kafka™ and are not applicable to alternative brokers.
See Supported Backends for the full compatibility matrix covering all KNet feature areas.
Community and contributions
If you find KNet useful:
- Leave a ⭐ on the repository
- Open issues to report bugs 🐛 or request features
- Submit Pull Requests to improve the project
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to coc_reporting@masesgroup.com.