API reference
The snappy package, from snappy 0.1.4, as published on mojoshelf (commit b8172ed0a4ef), by mojo doc from Mojo 1.2.0.
Source.
Snappy — a pure-Mojo Snappy compressor/decompressor.
Implements both the raw block format (varint length + literal/copy
elements) and the framing format (sNaPpY stream identifier, chunked,
CRC-32C-checksummed) from
https://github.com/google/snappy/blob/main/format_description.txt and
https://github.com/google/snappy/blob/main/framing_format.txt. No FFI, no
C dependency.
from snappy import compress, decompress
var packed = compress(Span(data))
var back = decompress(Span(packed))
from snappy import compress_framed, decompress_framed
var stream = compress_framed(Span(data)) # sNaPpY-framed, CRC-checked
var back2 = decompress_framed(Span(stream))
Modules
-
snappy.crc32cCRC-32C (Castagnoli, polynomial 0x1EDC6F41 / reflected 0x82F63B78), init/xorout 0xFFFFFFFF. Table-driven with a slice-by-8 fast path. 1 struct · 3 functions -
snappy.framingSnappy framing format: asNaPpYstream identifier chunk followed by a sequence of length-prefixed chunks, each either compressed or uncompressed raw-format data guarded by a masked CRC-32C. See https://github.com/google/snappy/blob/main/framing_format.txt. 2 structs · 2 functions -
snappy.rawSnappy raw block format: a leading varint giving the uncompressed length, followed by a stream of literal / copy elements. See https://github.com/google/snappy/blob/main/format_description.txt. 6 functions