KNet | KNetCLI | KNet.Templates |
---|---|---|
KNet is a .NET mirror for Apache Kafka APIs providing all features: Producer, Consumer, Admin, Streams, Connect, backends (ZooKeeper and Kafka).
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.
This project aims to create a library to direct access, from .NET, all the features available in the Apache Kafka binary distribution. The packages are downloaded from:
kafka-clients | kafka-streams | kafka-tools | kafka_2.13 | connect-runtime | connect-mirror | connect-file | connect-basic-auth-extension |
---|---|---|---|---|---|---|---|
There are many client libraries written to manage communication with Apache Kafka. Conversely, this project use directly the Java packages released from The Apache Foundation giving more than one benefit:
- all implemented features are availables at no extra implementation costs, see KNet usage;
- avoids any third party communication protocol implementation;
- access all features made available from Apache Kafka: the most important are Apache Kafka Streams and Apache Kafka Connect which does not have any C# implementation;
- measured high performance in many operating conditions.
KNet uses JNet, and indeed JCOBridge with its features, to obtain many benefits:
- Cyber-security:
- JVM and CLR, or CoreCLR, runs in the same process, but are insulated from each other;
- JCOBridge does not make any code injection into JVM;
- JCOBridge does not use any other communication mechanism than JNI;
- .NET (CLR) inherently inherits the cyber-security levels of running JVM and Apache Kafka;
- Direct access the JVM from any .NET application:
- Any Java/Scala class behind Apache Kafka can be directly managed: Consumer, Producer, Administration, Streams, Server-side, and so on;
- No need to learn new APIs: we try to expose the same APIs in C# style;
- No extra validation cycle on protocol and functionality: bug fix, improvements, new features are immediately available;
- Documentation is shared;
- Dynamic code: it helps to write a Java/Scala/Kotlin/etc seamless language code directly inside a standard .NET application written in C#/VB.NET: look at this simple example and KNet APIs extensibility.
Have a look at the following resources:
- Roadmap
- Actual state
- Performance
- KNet usage
- KNet APIs extensibility
- KNetCLI usage
- How to build from scratch
KAFKA is a registered trademark of The Apache Software Foundation. KNet has no affiliation with and is not endorsed by The Apache Software Foundation.