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.
#:package Itmo.Dev.Platform.Kafka@1.0.70
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code 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.322 379 11/17/2025
2.3.318 126 11/16/2025
2.3.312 205 10/16/2025
2.3.308 180 10/9/2025
2.3.302 173 10/9/2025
2.3.298 175 10/5/2025
2.3.296 168 10/5/2025
2.3.294 238 5/28/2025
2.3.292 211 5/27/2025
2.3.290 233 5/27/2025
2.3.288 179 5/17/2025
2.3.282 281 5/11/2025
2.3.275 120 5/10/2025
2.3.271 140 5/10/2025
2.3.269 125 5/10/2025
2.3.261 244 2/16/2025
2.3.255 165 2/6/2025
2.3.251 191 2/3/2025
2.3.247 497 12/24/2024
2.3.237 228 11/30/2024
2.2.234 267 11/18/2024
2.2.232 156 11/18/2024
2.2.228 158 10/31/2024
2.2.206 237 10/30/2024
2.2.204 209 10/29/2024
2.2.202 162 10/29/2024
2.1.196 154 10/29/2024
2.1.193 186 10/29/2024
2.1.190 165 10/26/2024
2.0.174 151 10/25/2024
2.0.133 154 10/25/2024
2.0.132 152 10/24/2024
2.0.131 221 10/24/2024
2.0.130 170 10/24/2024
2.0.129 187 10/24/2024
2.0.128 162 10/24/2024
2.0.127 157 10/23/2024
2.0.126 165 10/11/2024
2.0.125 176 10/11/2024
2.0.124 154 10/11/2024
2.0.123 182 10/11/2024
2.0.122 181 10/11/2024
2.0.121 155 10/11/2024
2.0.120 181 10/11/2024
2.0.119 177 10/11/2024
2.0.118 195 10/11/2024
2.0.117 158 10/10/2024
2.0.115 176 10/10/2024
2.0.113 171 10/6/2024
2.0.112 226 8/22/2024
2.0.111 230 5/14/2024
2.0.110 192 5/13/2024
2.0.109 191 5/13/2024
2.0.108 233 5/6/2024
2.0.107 205 5/6/2024
2.0.106 190 5/6/2024
2.0.105 187 5/4/2024
2.0.102 194 5/4/2024
2.0.101 184 4/26/2024
2.0.100 213 4/22/2024
2.0.99 183 4/21/2024
2.0.98 193 4/21/2024
2.0.97 196 4/19/2024
2.0.96 194 4/18/2024
2.0.95 173 4/18/2024
2.0.94 222 2/13/2024
2.0.93 197 2/10/2024
2.0.91 199 2/10/2024
2.0.90 199 2/10/2024
2.0.89 332 2/3/2024
2.0.86 175 2/1/2024
1.1.85 204 1/30/2024
1.1.83 234 1/27/2024
1.1.82 289 1/5/2024
1.1.81 354 1/3/2024
1.0.80 213 12/30/2023
1.0.79 183 12/30/2023
1.0.78 197 12/30/2023
1.0.77 227 12/28/2023
1.0.76 202 12/27/2023
1.0.75 240 12/9/2023
1.0.73 218 11/30/2023
1.0.72 186 11/27/2023
1.0.71 215 11/27/2023
1.0.70 210 11/27/2023
1.0.69 166 11/27/2023
1.0.67 194 11/25/2023
1.0.66 178 11/25/2023
1.0.65 180 11/23/2023
1.0.64 163 11/23/2023
1.0.62 195 11/18/2023
1.0.61 206 11/18/2023
1.0.60 172 11/17/2023
1.0.59 174 11/16/2023
1.0.58 181 11/13/2023
1.0.57 166 11/12/2023
1.0.56 171 11/12/2023
1.0.54 208 11/7/2023
1.0.53 206 11/4/2023
1.0.52 212 10/29/2023
1.0.51 189 10/29/2023
1.0.50 220 10/29/2023
1.0.48 194 10/29/2023

Added options post configure