Hurray Implementation Requirements

This directory contains requirements for implementations of the Hurray format. These requirements are distinct from the format specification (docs/spec/):

docs/spec/docs/impl/
ScopeWhat the binary encoding and protocol must look likeWhat a conforming implementation must provide
LanguageLanguage-agnosticSpecific to each implementation layer
AudienceAnyone writing a Hurray reader/writerAuthors of the Hurray implementations themselves

The format spec is the source of truth for the wire format. These documents define the API contracts, binding conventions, compliance criteria, and quality requirements that the reference implementation and language bindings must satisfy.

Implementations in Scope

ImplementationLanguageCrate / Module
Reference implementationRusthurray-core, hurray-io
C FFI layerC (via Rust)hurray-ffi
Python bindingsPython (via PyO3)hurray-python

Documents

DocumentDescription
ComplianceConformance levels, mandatory vs optional feature support, test surface
Implementation StatusWhich of those features each implementation actually provides — generated from the crates, the Python module, and the C header
Rust ReferenceRequirements for hurray-core and hurray-io
C FFIC ABI layer requirements: opaque handles, function table, panic safety
Python BindingsPython codec + zero-copy bridge: DLPack, NumPy/PyTorch interop, native Hurray buffer protocol