Documentation
The documentation site is at avrosharp.github.io/AvroSharp, built from these pages and the API's XML documentation.
Guides
- Getting started: installing, a first program, and a page per task, each built from a sample: generated types, container files, schema evolution, logical types and JSON.
- Guide: getting started, the generic data model, container files and codecs, single-object messages and schema registries, and streams.
- Code generation: the
AvroSharp.Generatorssource generator: setup, MSBuild properties, type mapping, schema evolution, diagnostics, and moving from avrogen. - Command-line tool:
avrosharp gen,schema canonical,schema fingerprintandschema compat, exit codes, and use in CI. - Integrations: schema registries and message brokers, AvroSharp.Confluent for Confluent.Kafka, AvroSharp.KafkaFlow for KafkaFlow, AvroSharp.Azure.SchemaRegistry for Azure Schema Registry, and AvroSharp.Aws.Glue for AWS Glue Schema Registry.
- Confluent Schema Registry and Kafka: AvroSharp.Confluent's serializers for Confluent.Kafka, their settings, and moving from Confluent's Avro serializer and from Chr.Avro.
- KafkaFlow: AvroSharp.KafkaFlow's serializer middleware for KafkaFlow, several record types per topic, and moving from KafkaFlow's Confluent Avro serializer.
- Azure Schema Registry: AvroSharp.Azure.SchemaRegistry's serializer for Event Hubs and Service Bus messages, and moving from Microsoft's Avro serializer.
- AWS Glue Schema Registry: AvroSharp.Aws.Glue's managed serializer for Kafka and Kinesis, its settings, and moving from AWS's native serializer.
- Samples: runnable programs for the main APIs, run by CI.
Reference
- API reference: every public type, from the XML documentation, by namespace:
AvroSharp.Schemas,AvroSharp.IO,AvroSharp.Generic,AvroSharp.Serialization,AvroSharp.Containers,AvroSharp.Messages,AvroSharp.Streams,AvroSharp.Codecs,AvroSharp.CodeGen, and the add-ons'AvroSharp.Confluent,AvroSharp.KafkaFlow,AvroSharp.Azure.SchemaRegistry,AvroSharp.Aws.GlueandAvroSharp.Aws.Glue.Kafka. - Benchmarks: the results against Apache.Avro, what is measured, and how to run the suite and the performance gate.
- AvroSharp and Apache.Avro: what differs, and when Apache.Avro is the better fit.
- Migrating from Apache.Avro: Apache.Avro code and its AvroSharp equivalent, from schemas to generated types, with the compatibility mode and what has no equivalent.
- Design: the design proposal, the decisions made since, and how the repository differs from the proposal.
- Roadmap: the status of each milestone and where the open work is tracked.
- Fuzzing: the libFuzzer targets and how to run them.
- Contributing: building, testing, formatting and pull requests.
- Changelog: what changed, newest first.
Reviews and measurements
Dated notes from reviews and benchmark runs. Each one records what was measured, on which machines, and what it led to.
| Date | Note |
|---|---|
| 2026-09-25 | Performance review: the hot paths against Apache.Avro, and the follow-up issues |
| 2026-09-26 | Benchmarks on 64K data: 64K random values on an i7-12800H and an EPYC 7543 |
| 2026-09-26 | Branchless varints: branchless varint encoding on the same machines |
| 2026-09-26 | Hybrid varints: the hybrid varint encoder and its open questions |
| 2026-09-26 | EPYC varints: varint performance on AMD EPYC |
| 2026-09-26 | Generated code: generated serializers against the generic model and Apache.Avro |
| 2026-09-28 | Full benchmark run: every benchmark on an i7-12800H with .NET 10, as speed-ups over Apache.Avro |
| 2026-09-28 | perf/varints-parse benchmarks: bulk reads, varint encode and schema parsing on an i5-3570K and a Ryzen 5 3500U |
| 2026-09-28 | perf/varints-parse at 41d6483: the second run on both machines, with the record and container benchmarks |
| 2026-09-28 | perf/varints-parse on CPUs with fast PDEP: the i7-12800H and an EPYC 7543 at 8164630, and the bulk Mixed1-10 fix |
| 2026-09-28 | perf/varints-parse on CPUs without fast PDEP: the i5-3570K and the nas at 8164630, the full suite |
| 2026-09-30 | Ecosystem integrations spike: an AvroSharp.Confluent prototype on Confluent's serde classes, and which add-on packages to build (#78) |
| 2026-10-01 | [AvroSerializable] types: the attribute-driven generator's serializers against generated code, the generic model and Apache.Avro on an EPYC 7543 (#31) |