Expand description
Avro deserialization for the Spate framework.
Decodes bare Avro datums as carried by Kafka messages — Confluent wire
format (magic byte + schema id + datum), Avro single-object encoding,
or raw datums with a fixed schema — into either dynamically-typed
AvroValue records or your own serde types
(AvroSerdeDeserializer).
§Never block the pipeline thread
Registry schemas are fetched by an asynchronous task on the I/O
runtime and cached per process. A payload whose schema is not cached
yet reports “not ready”: the operator chain holds the batch (the
source is paused by backpressure if needed) and replays the payload
once the fetch lands — records are never dropped or duplicated, and
the CPU-pinned pipeline threads never perform I/O. Ids the registry
cannot serve are negatively cached (with a TTL) and handled by the
deserializer’s ErrorPolicy like any other poison payload.
§Schema evolution
Writer schemas come from the payload (registry id or fingerprint) or
configuration; an optional reader_schema pins the shape records are
resolved into, using Avro’s schema-resolution rules (field reordering,
defaults, promotions, aliases). Registry schemas using references are
not supported yet and are surfaced as unavailable.
Structs§
- Avro
Deserializer Builder - Builder produced from the opaque config section; hands out either the dynamically-typed or the serde-typed deserializer.
- Avro
Serde Deserializer - Typed deserializer: decodes each datum into
Tvia serde. The record type is plain Rust — no Avro types leak into the pipeline. - Avro
Settings - The
avrocomponent configuration. - Avro
Value Deserializer - Dynamically-typed deserializer: emits
AvroValuerecords. Use when the schema is only known at runtime, or as the lower-allocation path — it decodes each datum exactly once. The typedAvroSerdeDeserializerkeepsapache-avrotypes out of your pipeline, but it is not faster: it decodes to anAvroValueand then re-decodes that intoT. - Registry
Section - Registry connection section.
- Schema
Source - A schema provided inline or from a file — set exactly one field.
Enums§
- Avro
Config Error - Construction errors.
- Avro
Mode - Payload framing mode.
Functions§
- parse_
confluent - Confluent framing: magic
0x00+u32big-endian schema id + datum. - parse_
single_ object - Single-object framing: magic
0xC3 0x01+u64little-endian Rabin fingerprint + datum.
Type Aliases§
- Avro
Value - The generic Avro value type emitted by
AvroValueDeserializer.