Welcome to KNet

KNet KNetCLI KNet.Templates KNetPS
(version 1.4.4+)
KNetConnect
(version 1.4.7+)
KNet nuget downloads KNetCLI nuget downloads KNet.Templates nuget downloads KNetPS KNetConnect nuget downloads

KNet is a .NET gateway 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.

Scope of the project

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
Maven Central Maven Central Maven Central Maven Central Maven Central Maven Central Maven Central Maven Central

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.

News

  • V1.4.4+: From version 1.4.4 there is a new project, named KNetPS, which permits to write PowerShell client scripts for an Apache Kafka cluster and many other things, here full usage.
  • V1.4.7+: From version 1.4.7 there is a new project, named KNetConnect, to execute Apache Kafka Connect related jobs, here full usage.

Runtime engine

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:

  • Release notes
  • Non Profit or University
  • Commercial info: Professional or Enterprise
  • JCOBridge nuget

Summary

  • Roadmap
  • Actual state
  • Performance
  • Connect SDK
  • KNet usage
  • KNet APIs extensibility
  • KNet CLI usage
  • KNet Connect usage
  • KNet PowerShell usage
  • KNet Template 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.

  • Improve this Doc
In This Article
Back to top Copyright © 2022 MASES s.r.l..
Generated by DocFX