Excalibur.Dispatch.Serialization.Avro
3.0.0-alpha.216
dotnet add package Excalibur.Dispatch.Serialization.Avro --version 3.0.0-alpha.216
NuGet\Install-Package Excalibur.Dispatch.Serialization.Avro -Version 3.0.0-alpha.216
<PackageReference Include="Excalibur.Dispatch.Serialization.Avro" Version="3.0.0-alpha.216" />
<PackageVersion Include="Excalibur.Dispatch.Serialization.Avro" Version="3.0.0-alpha.216" />
<PackageReference Include="Excalibur.Dispatch.Serialization.Avro" />
paket add Excalibur.Dispatch.Serialization.Avro --version 3.0.0-alpha.216
#r "nuget: Excalibur.Dispatch.Serialization.Avro, 3.0.0-alpha.216"
#:package Excalibur.Dispatch.Serialization.Avro@3.0.0-alpha.216
#addin nuget:?package=Excalibur.Dispatch.Serialization.Avro&version=3.0.0-alpha.216&prerelease
#tool nuget:?package=Excalibur.Dispatch.Serialization.Avro&version=3.0.0-alpha.216&prerelease
Excalibur.Dispatch.Serialization.Avro
Apache Avro serialization plugin for the Excalibur framework.
Features
- Schema-based binary serialization via Apache Avro
- Optimized for streaming and Kafka scenarios
- Cross-language compatibility (Java, Python, Go, etc.) when reader and writer share the same schema
- Pluggable serialization registry integration
Usage
One call does everything -- DI registration, serializer registry entry, and setting Avro as the current serializer:
services.AddAvroSerializer();
With custom options:
services.AddAvroSerializer(opts =>
{
opts.BufferSize = 8192; // default: 4096
});
Requirements
Types must implement ISpecificRecord from the Apache.Avro package.
Schema Compatibility
This serializer decodes each payload using the reader type's own schema as both the reader and writer schema, so data must have been written with the same schema the reader expects. Avro writer-schema resolution — schema evolution, i.e. reading data written with an older but compatible writer schema — is not currently supported.
Skew is detected and fails closed — never silently mis-decoded. Every payload is framed with the
Avro single-object-encoding
header: the marker 0xC3 0x01 followed by the 8-byte little-endian CRC-64-AVRO (Rabin) fingerprint of the
writer schema. On read, the serializer compares the payload's writer-schema fingerprint against the reader
schema's fingerprint; if they differ (a writer/reader schema skew) and no compatible writer schema can be
resolved, it throws SchemaMismatchException instead of positionally decoding against the wrong schema
(which could silently corrupt field values). A payload missing the header also fails closed.
To evolve message contracts over time, version your types explicitly (for example through the serialization registry) so every payload is read with the schema it was written with.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Apache.Avro (>= 1.12.1)
- CloudNative.CloudEvents (>= 2.8.0)
- CloudNative.CloudEvents.SystemTextJson (>= 2.8.0)
- Cronos (>= 0.12.0)
- Excalibur.Dispatch (>= 3.0.0-alpha.216)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.216)
- Medo.Uuid7 (>= 3.2.0)
- Microsoft.AspNetCore.Authorization (>= 10.0.7)
- Microsoft.Extensions.Configuration (>= 10.0.7)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.7)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Http (>= 10.0.7)
- Microsoft.Extensions.Logging (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Microsoft.Extensions.ObjectPool (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.7)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.7)
- System.Threading.RateLimiting (>= 10.0.7)
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 |
|---|---|---|
| 3.0.0-alpha.216 | 55 | 6/30/2026 |
| 3.0.0-alpha.215 | 61 | 6/23/2026 |
| 3.0.0-alpha.214 | 70 | 6/23/2026 |
| 3.0.0-alpha.208 | 63 | 6/11/2026 |
| 3.0.0-alpha.207 | 52 | 6/11/2026 |
| 3.0.0-alpha.205 | 55 | 6/10/2026 |
| 3.0.0-alpha.204 | 59 | 6/8/2026 |
| 3.0.0-alpha.203 | 50 | 6/8/2026 |
| 3.0.0-alpha.202 | 55 | 6/8/2026 |
| 3.0.0-alpha.201 | 56 | 6/8/2026 |
| 3.0.0-alpha.199 | 65 | 6/8/2026 |
| 3.0.0-alpha.198 | 62 | 5/28/2026 |
| 3.0.0-alpha.197 | 69 | 5/28/2026 |
| 3.0.0-alpha.194 | 61 | 5/20/2026 |
| 3.0.0-alpha.193 | 56 | 5/13/2026 |
| 3.0.0-alpha.192 | 51 | 5/13/2026 |
| 3.0.0-alpha.191 | 54 | 5/13/2026 |
| 3.0.0-alpha.189 | 55 | 5/12/2026 |
| 3.0.0-alpha.187 | 60 | 5/8/2026 |
| 3.0.0-alpha.185 | 63 | 5/7/2026 |