Normative, language-neutral notes on what each codec and container does: the choices the formats leave open, the defaults and limits, and the benchmark method. A port should be able to reproduce the same bytes from these pages. The XML documentation shipped in both packages is the API reference. Specification sections are cited by number; the specifications themselves are not reproduced.
Every codec has the same three tiers (conventions.md): static one-liners, encoder/decoder structs with
OperationStatus over spans plus a stream, and the raw parts underneath.
Codecs (RecursiveAI.OneCompress)
| Family | Specification | Decoder | Encoder | Notes |
|---|---|---|---|---|
| Zstandard | RFC 8878 | zstd-decoder | zstd-encoder | dictionary training, seekable format, small-payload method |
| LZ4 | LZ4 block and frame format documents | lz4-decoder | lz4-encoder | block and frame, dictionaries |
| Deflate | RFC 1951 | deflate-decoder | deflate-encoder | |
| zlib and gzip | RFC 1950, RFC 1952 | gzip-zlib | gzip-zlib | wrappers over Deflate |
| Deflate64 | APPNOTE 6.3.10, section 4.4.5 | deflate64-decoder | deflate64-encoder | derivation by experiment |
| Brotli | RFC 7932 | brotli-decoder | brotli-encoder | built-in dictionary |
| LZMA and LZMA2 | LZMA specification | lzma-decoder | lzma-encoder | |
| xz | xz file format specification | xz | xz | checks, filters, blocks |
| lzip | the lzip manual | lzip | lzip | |
| Branch and Delta filters | xz file format specification, 5.3.2 | filters | filters | x86, ARM, ARM64, RISC-V and others |
| bzip2 | public descriptions, no official specification | bzip2-decoder | bzip2-encoder | derivation by experiment |
| PPMd (variants H and I) | Shkarin's papers and public-domain reference sources | ppmd | ppmd | |
| LZX and MSZIP | [MS-PATCH], the cabinet format | lzx-decoder | not provided | used by cab |
| Checksums | RFC 1952, RFC 3720, ECMA-182, xxHash description | checksums | CRC-32, CRC-32C, CRC-64, Adler-32, xxHash32, xxHash64 |
Also: message mode (compressing many small messages with a trained dictionary and reused state).
Containers (RecursiveAI.OneArchive)
| Format | Specification | Page |
|---|---|---|
The shared model, safety defaults, limits, Archive | archive | |
| Codec registration and trimming | archive-codecs | |
| tar | POSIX ustar and pax, GNU tar manual | tar |
| zip | APPNOTE 6.3.10, WinZip AES | zip, encryption, recovery |
Single compressed files, .tar.* | single-streams | |
| 7z | 7zFormat.txt | reader, writer, AES key derivation |
| cpio and ar | cpio-ar | |
| ISO 9660 with Joliet and Rock Ridge | ECMA-119, Joliet, IEEE P1281 and P1282 | iso |
| cab | the cabinet file format | cab-reader |
| RAR 5 (listing and stored entries) | the RAR 5 technote | rar-reader |
| Microsoft compound files | [MS-CFB] | cfb |
Measurement and determinism
- bench-method: how speed, size and memory are measured, against the native tools and against the fastest managed .NET libraries, including the size-matched rows.
- hash-matrix: how byte-identical output is checked across operating systems, CPUs, runtimes, thread counts and WebAssembly.