avro · API

avro.codec

Object Container File block codecs.

DataFileReader and DataFileWriter are parametrised on a CodecSet, a compile-time table of block compressors. The default set — DefaultCodecs — covers null and deflate. Avro's deflate is raw DEFLATE, which comes from the sibling deflate.mojo tin: pure Mojo, no FFI, so the core library still links nothing.

snappy and zstandard live in avro.ext_snappy / avro.ext_zstd, which import the sibling magmalake tins. Nothing in avro/__init__.mojo imports them, so a consumer only pays for a codec it actually asks for:

from avro import DataFileReader
from avro.ext_zstd import AllCodecs          # needs -I ../snappy.mojo/src -I ../zstd.mojo/src

var r = DataFileReader[AllCodecs].open("f.avro")

Structs

DefaultCodecs

struct DefaultCodecs

null and deflate — nothing beyond the pure-Mojo deflate.mojo.

Implements CodecSet, Movable

supports

def supports(name: StringSpan) -> Bool

compress

def compress(name: StringSpan, data: Span[UInt8]) -> List[UInt8]

decompress

def decompress(name: StringSpan, data: Span[UInt8]) -> List[UInt8]

Traits

CodecSet

A compile-time table of Avro block codecs.

supports

def supports(name: StringSpan) -> Bool

Whether this set can handle the avro.codec value name.

compress

def compress(name: StringSpan, data: Span[UInt8]) -> List[UInt8]

decompress

def decompress(name: StringSpan, data: Span[UInt8]) -> List[UInt8]

Functions

unknown_codec

def unknown_codec(name: StringSpan) -> Error