Itmo.Dev.Platform.Kafka 1.0.70

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Itmo.Dev.Platform.Kafka --version 1.0.70
                    
NuGet\Install-Package Itmo.Dev.Platform.Kafka -Version 1.0.70
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Itmo.Dev.Platform.Kafka" Version="1.0.70" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Itmo.Dev.Platform.Kafka" Version="1.0.70" />
                    
Directory.Packages.props
<PackageReference Include="Itmo.Dev.Platform.Kafka" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Itmo.Dev.Platform.Kafka --version 1.0.70
                    
#r "nuget: Itmo.Dev.Platform.Kafka, 1.0.70"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Itmo.Dev.Platform.Kafka&version=1.0.70
                    
Install as a Cake Addin
#tool nuget:?package=Itmo.Dev.Platform.Kafka&version=1.0.70
                    
Install as a Cake Tool

Itmo.Dev.Platform.Kafka

Platform extensions for working with Kafka

Consumer

Implement message handler

public class MyMessageHandler : IKafkaMessageHandler<int, string>
{
    public ValueTask HandleAsync(
        IEnumerable<ConsumerKafkaMessage<TKey, TValue>> messages, 
        CancellationToken cancellationToken)
    {
        foreach (var message in messages)
        {
            Console.WriteLine($"Received message, Key = {message.Key}, Value = {message.Value}");
        }
        
        return ValueTask.CompletedTask;
    }
}

Implement configuration type

public class Configuration : IKafkaConsumerConfiguration
{
    public bool IsDisabled { get; init; }

    public TimeSpan DisabledConsumerTimeout { get; init; }

    public string Host { get; set; } = string.Empty;

    public string Topic { get; init; } = string.Empty;

    public string Group { get; init; } = string.Empty;

    public int ParallelismDegree { get; init; }

    public int BufferSize { get; init; }

    public TimeSpan BufferWaitLimit { get; init; }

    public bool ReadLatest { get; init; }
}

At runtime, configuration would be received as IOptionsMonitor<TConfiguration>, so you should manually register it to DI container as options.

Add consumer to your ASP.NET server services

Consumer requires an ASP.NET host, as it is implemented as hosted service

Use extension methods to register your consumer.

collection.AddKafkaConsumer<int, string>(builder => builder
    .HandleWith<MyMessageHandler>()
    .DeserializeKeyWithNewtonsoft()
    .DeserializeValueWithNewtonsoft()
    .UseConfiguration<Configuration>());

If you want to use custom deserializer, you can call DeserializeKeyWith<T> where T : IDeserializer<T> method, same way with value deserialization.

If your topic model is defined as protobuf, you can call DeserializeKeyWithProto extension method, same way with value deserialization.

Producer

Add producer to your service collection

collection.AddKafkaProducer<int, string>(builder => builder
    .SerializeKeyWithNewtonsoft()
    .SerializeValueWithNewtonsoft()
    .UseConfiguration<Configuration>());

You can use protobuf serialization same way as it is with consumer.

Resolve producer instance from service provider

var producer = provider.GetRequiredService<IKafkaMessageProducer<int, string>>();
await producer.ProduceAsync(messages, default);
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.3.294 142 5/28/2025
2.3.292 142 5/27/2025
2.3.290 162 5/27/2025
2.3.288 112 5/17/2025
2.3.282 200 5/11/2025
2.3.275 69 5/10/2025
2.3.271 71 5/10/2025
2.3.269 73 5/10/2025
2.3.261 178 2/16/2025
2.3.255 119 2/6/2025
2.3.251 131 2/3/2025
2.3.247 402 12/24/2024
2.3.237 177 11/30/2024
2.2.234 189 11/18/2024
2.2.232 108 11/18/2024
2.2.228 110 10/31/2024
2.2.206 194 10/30/2024
2.2.204 139 10/29/2024
2.2.202 112 10/29/2024
2.1.196 108 10/29/2024
2.1.193 116 10/29/2024
2.1.190 120 10/26/2024
2.0.174 115 10/25/2024
2.0.133 108 10/25/2024
2.0.132 104 10/24/2024
2.0.131 153 10/24/2024
2.0.130 107 10/24/2024
2.0.129 116 10/24/2024
2.0.128 114 10/24/2024
2.0.127 112 10/23/2024
2.0.126 120 10/11/2024
2.0.125 109 10/11/2024
2.0.124 110 10/11/2024
2.0.123 105 10/11/2024
2.0.122 111 10/11/2024
2.0.121 111 10/11/2024
2.0.120 119 10/11/2024
2.0.119 112 10/11/2024
2.0.118 129 10/11/2024
2.0.117 113 10/10/2024
2.0.115 118 10/10/2024
2.0.113 115 10/6/2024
2.0.112 159 8/22/2024
2.0.111 173 5/14/2024
2.0.110 142 5/13/2024
2.0.109 134 5/13/2024
2.0.108 160 5/6/2024
2.0.107 139 5/6/2024
2.0.106 136 5/6/2024
2.0.105 140 5/4/2024
2.0.102 151 5/4/2024
2.0.101 137 4/26/2024
2.0.100 148 4/22/2024
2.0.99 136 4/21/2024
2.0.98 140 4/21/2024
2.0.97 127 4/19/2024
2.0.96 132 4/18/2024
2.0.95 132 4/18/2024
2.0.94 157 2/13/2024
2.0.93 157 2/10/2024
2.0.91 136 2/10/2024
2.0.90 144 2/10/2024
2.0.89 288 2/3/2024
2.0.86 131 2/1/2024
1.1.85 137 1/30/2024
1.1.83 192 1/27/2024
1.1.82 220 1/5/2024
1.1.81 309 1/3/2024
1.0.80 172 12/30/2023
1.0.79 151 12/30/2023
1.0.78 152 12/30/2023
1.0.77 164 12/28/2023
1.0.76 151 12/27/2023
1.0.75 188 12/9/2023
1.0.73 181 11/30/2023
1.0.72 158 11/27/2023
1.0.71 156 11/27/2023
1.0.70 155 11/27/2023
1.0.69 129 11/27/2023
1.0.67 159 11/25/2023
1.0.66 146 11/25/2023
1.0.65 150 11/23/2023
1.0.64 140 11/23/2023
1.0.62 147 11/18/2023
1.0.61 148 11/18/2023
1.0.60 136 11/17/2023
1.0.59 139 11/16/2023
1.0.58 135 11/13/2023
1.0.57 128 11/12/2023
1.0.56 135 11/12/2023
1.0.54 150 11/7/2023
1.0.53 144 11/4/2023
1.0.52 171 10/29/2023
1.0.51 150 10/29/2023
1.0.50 162 10/29/2023
1.0.48 146 10/29/2023

Added options post configure