Changelog¶
Notable changes to the binary-ensemble Python package, newest first. The byte-level
stability promises for the BEN/XBEN/BENDL formats themselves are covered separately in
Compatibility and stability.
1.0.0¶
First stable release of the rewritten Python API.
.bendlfiles —BendlEncoder/BendlDecoderread and write the single-file bundle format: an assignment stream plus the dual graph, node permutation map, metadata, and custom assets.compress_streamrecompresses a bundle’s stream to XBEN andrelabel_bundlereorders a bundle’s graph and rewrites its stream to match, both preserving every asset.Custom assets —
add_assetaccepts JSON, text, and arbitrary binary payloads (plus a"file"content type that reads a path), with CRC32C checksums on every asset, transparent xz compression for payloads of 1 KiB or more, andBendlDecoder.verify()to validate a whole bundle’s checksums in one call.Plain streams —
BenEncoder/BenDecoderwrite and iterate plain.ben/.xbenstreams, with variant-aware subsampling (subsample_indices,subsample_range,subsample_every) shared with the bundle decoder.standardandmkv_chainskip whole frames;twodeltareplays from snapshots.Whole-file codecs —
encode_jsonl_to_ben,encode_jsonl_to_xben,encode_ben_to_xben, and the matchingdecode_*helpers convert complete files between JSONL, BEN, and XBEN.Graph reordering —
binary_ensemble.graphexposes the MLC, RCM, and key-based orderings used byadd_graphandrelabel_bundle.Encoding variants —
standard,mkv_chain, andtwodelta(the default), with automatic variant detection on read.binary_ensemble.__version__reports the installed package version.
Requires Python 3.11+; NetworkX is the only runtime dependency.