Kafka.Protocol 2.0.0-pre-137

This is a prerelease version of Kafka.Protocol.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Kafka.Protocol --version 2.0.0-pre-137
                    
NuGet\Install-Package Kafka.Protocol -Version 2.0.0-pre-137
                    
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="Kafka.Protocol" Version="2.0.0-pre-137" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kafka.Protocol" Version="2.0.0-pre-137" />
                    
Directory.Packages.props
<PackageReference Include="Kafka.Protocol" />
                    
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 Kafka.Protocol --version 2.0.0-pre-137
                    
#r "nuget: Kafka.Protocol, 2.0.0-pre-137"
                    
#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 Kafka.Protocol@2.0.0-pre-137
                    
#: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=Kafka.Protocol&version=2.0.0-pre-137&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Kafka.Protocol&version=2.0.0-pre-137&prerelease
                    
Install as a Cake Tool

Kafka protocol definitions

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Kafka.Protocol:

Package Downloads
Kafka.TestFramework

Framework for testing integrations with Kafka

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
9.0.0 35 9/9/2025
9.0.0-pre-fbe92e2b 32 9/9/2025
8.0.0 266 4/2/2025
8.0.0-pre-fba19ef2 151 4/2/2025
7.0.1 2,565 1/27/2025
7.0.1-pre-524be03a 89 1/27/2025
7.0.1-pre-159bfe3c 98 1/27/2025
7.0.0 152 1/15/2025
7.0.0-pre-dcf4418a 102 12/23/2024
7.0.0-pre-b6de0883 109 12/19/2024
7.0.0-pre-acbfddff 138 12/31/2024
7.0.0-pre-9388ce25 106 12/18/2024
7.0.0-pre-13443817 82 1/14/2025
6.0.0 154 11/14/2024
6.0.0-pre-f10205c1 105 11/13/2024
6.0.0-pre-62e2dea7 102 11/13/2024
6.0.0-pre-0b458e0a 110 11/13/2024
5.1.3-pre-440839a2 97 10/31/2024
5.1.3-pre-3f6b0a97 111 10/31/2024
5.1.2 213 10/14/2024
5.1.1 140 10/14/2024
5.1.1-pre-8ec4c2b9 131 8/17/2024
5.1.1-pre-071d5e0b 108 8/17/2024
5.1.0 609 7/23/2024
5.1.0-pre-86ae9ba6 118 7/15/2024
5.1.0-pre-32ee7bc4 115 7/22/2024
5.0.1 146 7/15/2024
5.0.1-pre-f60d04b9 83 7/10/2024
5.0.1-pre-e8bda9ac 124 6/29/2024
5.0.1-pre-cd5334a3 95 7/9/2024
5.0.1-pre-a8f1966d 104 7/15/2024
5.0.1-pre-38c84a45 167 7/10/2024
5.0.0 19,948 6/25/2024
5.0.0-pre-2b032ce2 124 6/25/2024
5.0.0-pre-0d00f5bd 124 6/25/2024
4.0.1 170 6/25/2024
4.0.1-pre-9d6abee7 120 6/25/2024
4.0.0 1,904 7/31/2023
4.0.0-pre-b3008400 189 6/27/2023
3.0.0 459 12/29/2022
3.0.0-pre-9527abba 211 12/29/2022
3.0.0-pre-5ff37ac3 193 12/29/2022
2.2.0-pre-11ea2b00 198 12/15/2022
2.1.0 1,824 2/11/2022
2.1.0-pre-19 242 2/11/2022
2.1.0-pre-17 226 2/10/2022
2.1.0-pre-16 231 2/10/2022
2.0.3 8,266 2/4/2022
2.0.3-pre-1 282 2/4/2022
2.0.2 11,200 2/2/2022
2.0.2-pre-8 254 2/1/2022
2.0.2-pre-7 245 1/29/2022
2.0.2-pre-3 262 1/28/2022
2.0.2-pre-2 242 1/27/2022
2.0.2-pre-1 247 1/22/2022
2.0.1 537 1/21/2022
2.0.1-pre-3 236 1/21/2022
2.0.1-pre-2 241 1/21/2022
2.0.0 8,616 1/21/2022
2.0.0-pre-75 263 12/29/2021
2.0.0-pre-74 239 12/29/2021
2.0.0-pre-73 237 12/29/2021
2.0.0-pre-72 243 12/28/2021
2.0.0-pre-71 243 12/28/2021
2.0.0-pre-64 248 12/23/2021
2.0.0-pre-62 243 12/23/2021
2.0.0-pre-61 274 12/23/2021
2.0.0-pre-57 267 12/21/2021
2.0.0-pre-56 257 12/21/2021
2.0.0-pre-54 273 12/18/2021
2.0.0-pre-52 274 12/17/2021
2.0.0-pre-140 363 1/19/2022
2.0.0-pre-137 259 1/19/2022
2.0.0-pre-134 245 1/18/2022
2.0.0-pre-133 239 1/18/2022
2.0.0-pre-132 239 1/18/2022
2.0.0-pre-131 244 1/18/2022
2.0.0-pre-130 253 1/18/2022
2.0.0-pre-127 266 1/16/2022
2.0.0-pre-126 294 1/16/2022
2.0.0-pre-124 272 1/15/2022
2.0.0-pre-123 236 1/15/2022
2.0.0-pre-121 261 1/14/2022
2.0.0-pre-119 246 1/14/2022
2.0.0-pre-116 259 1/12/2022
2.0.0-pre-113 249 1/12/2022
1.1.0-pre-50 264 12/16/2021
1.1.0-pre-49 280 12/15/2021
1.1.0-pre-48 257 12/15/2021
1.1.0-pre-47 255 12/15/2021
1.1.0-pre-46 252 12/15/2021
1.1.0-pre-45 278 12/14/2021
1.1.0-pre-43 281 12/14/2021
1.1.0-pre-40 265 12/13/2021
1.1.0-pre-38 283 12/13/2021
1.1.0-pre-36 252 12/13/2021
1.1.0-pre-22 263 12/4/2021
1.0.12 4,170 11/24/2021
1.0.12-pre-5 3,929 11/24/2021
1.0.12-pre-4 3,548 11/24/2021
1.0.0 1,019 5/6/2020

# [v2.0.0-pre-137](https://github.com/Fresa/Kafka.Protocol/compare/v1.0.0...v2.0.0-pre-137) (2022-01-19)


### Bug Fixes

* **request payload:** exceptions thrown when reading a request payload should not be hidden by the stream length reporter throwing because all data has not been read ([6b6975b](https://github.com/Fresa/Kafka.Protocol/commit/6b6975bb6e6367ac91fafd83dcbbb8899de4172e))
* nullable default fields ([d51e522](https://github.com/Fresa/Kafka.Protocol/commit/d51e52297f8a52d2c70118b0d1126bce08a735b2))
* **reader:** when there is less than expected bytes read the reader is not informed that the data has been inspected which is mandatory. Refactor to use an array buffer writer instead to continuesly write to ([14f93fe](https://github.com/Fresa/Kafka.Protocol/commit/14f93fe3360c3777efc93fbdb38c183dd7049ba8))
* add nullability check when transforming nullable maps to dictionaries to avoid null reference exceptions ([d730dcc](https://github.com/Fresa/Kafka.Protocol/commit/d730dcc4bd7ae68b19f0a9f65aa78714d4a0ce00))
* **message definitions:** remove old definitions before downloading new ([63b3bb5](https://github.com/Fresa/Kafka.Protocol/commit/63b3bb543c7df531af56299ea0a7559fcb6c65a5))
* incorrect syntax of the conditional operator for reading compactated fields ([08585b9](https://github.com/Fresa/Kafka.Protocol/commit/08585b983187a87579e1c964f8b1a360388c152f))
* **crc:** CRC comparison was incorrect and calculating the CRC when reading was ineffeciently implemented ([34c5730](https://github.com/Fresa/Kafka.Protocol/commit/34c5730508f8e46324a2edefc2f496f8c953ad96))
* **records:** record and record batches read and wrote incorrect payload sizes ([958065d](https://github.com/Fresa/Kafka.Protocol/commit/958065d3c7e4555bc9d8e3fcc35c371b40f674dd))


### Code Refactoring

* **serialization:** move serialization to primitives and structures ([88e752d](https://github.com/Fresa/Kafka.Protocol/commit/88e752d2fe8aa8d6260b0c3f4a91b69db563f0e4))
* change to private setters for properties as most structures are not instantiable anyway due to internal logic. With methods should be used. ([2e80b38](https://github.com/Fresa/Kafka.Protocol/commit/2e80b387fa49bc8fb1979d71b8704a7ad0d6bb89))
* internalize serialization ([a86d928](https://github.com/Fresa/Kafka.Protocol/commit/a86d92873b5ea1f72158a93e15f5f4049a44d61f))


### Features

* **crc:** check for data corruption in records ([409ed50](https://github.com/Fresa/Kafka.Protocol/commit/409ed502b3eb25377905803b7c92cd9a7fa0abe5))
* **definitions:** update to latest protocol definition ([e8ae06d](https://github.com/Fresa/Kafka.Protocol/commit/e8ae06d8bfde80ee6a4c8ccbda7b3f8cf480aad2))
* **definitions:** update with the latest message deffinitions ([40b965a](https://github.com/Fresa/Kafka.Protocol/commit/40b965a59c2babb9be8b2dab6909477c4312bf35))
* **flexible versions:** support serializing flexible messages ([6d95901](https://github.com/Fresa/Kafka.Protocol/commit/6d9590167f696520e8f1391069a16533ade7a1c3))
* **tagged field:** support tagged (optional) fields ([145ffdf](https://github.com/Fresa/Kafka.Protocol/commit/145ffdf92b02d827320c7d2eb0effecb413715c0))


### Reverts

* Revert Revert add nullable record batch ([a567b68](https://github.com/Fresa/Kafka.Protocol/commit/a567b68177c24f48764c78b776535121a07acd3a))
* Revert determine if a primitive type can be compatable and use that when calculating size ([0a2b89f](https://github.com/Fresa/Kafka.Protocol/commit/0a2b89fed1a16a714c621aec2292446ac637c5f0))
* Revert add implicit convertion operators for compact primitves ([b7eddd3](https://github.com/Fresa/Kafka.Protocol/commit/b7eddd345984a49c7b4b0ee9968fbbb3b02db275))
* Revert split compaction into separate structs ([b33022c](https://github.com/Fresa/Kafka.Protocol/commit/b33022c03e0140e58461bb6c67c74cf6690696f3))


### Tests

* **recordbatch:** assure the length is correctly written ([7058687](https://github.com/Fresa/Kafka.Protocol/commit/70586877ea681b083351064022afd06215b19b92))


### BREAKING CHANGES

* **crc:** Records and record headers have been simplified and some redundant fields have been removed like key and value length. Records have also been updated to match latest protocol specification.
* **recordbatch:** refactored attribtutes to use an enum instead of properties to set timestamp type and compression
* **message definitions:** ListOffsetResponse and ListOffsetRequest have changed name to ListOffsetsResponse and ListOffsetsRequest
* **serialization:** IKafkaReader has been exchange to it's underlaying native PipeReader and IKafkaWriter has been exchange to it's underlying Stream. This should not affect most as it is mostly an internal mechanism.
* use with-methods instead of property setters
* serialization/deserialization should only be called from the request/response payload object. Any other usage from other protocol structures is now internal.