---
title: "Documentation"
url: https://recursiveai.org/onearchive/docs/docs-map/
description: "Normative, language-neutral notes on what each codec and container does: the choices the formats leave open, the defaults and limits, and the benchmark…"
version: "1.0.0"
source: https://github.com/recursive-ai-oss/onearchive-csharp/blob/38be9d7d05d1001649666d9a7200353750bd4a16/docs/README.md
---

# Documentation

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](https://recursiveai.org/onearchive/docs/zstd-decoder/) | [zstd-encoder](https://recursiveai.org/onearchive/docs/zstd-encoder/) | [dictionary training](https://recursiveai.org/onearchive/docs/zstd-dictionary-training/), [seekable format](https://recursiveai.org/onearchive/docs/zstd-seekable/), [small-payload method](https://recursiveai.org/onearchive/docs/small-payload-bench/) |
| LZ4 | LZ4 block and frame format documents | [lz4-decoder](https://recursiveai.org/onearchive/docs/lz4-decoder/) | [lz4-encoder](https://recursiveai.org/onearchive/docs/lz4-encoder/) | block and frame, dictionaries |
| Deflate | RFC 1951 | [deflate-decoder](https://recursiveai.org/onearchive/docs/deflate-decoder/) | [deflate-encoder](https://recursiveai.org/onearchive/docs/deflate-encoder/) | |
| zlib and gzip | RFC 1950, RFC 1952 | [gzip-zlib](https://recursiveai.org/onearchive/docs/gzip-zlib/) | [gzip-zlib](https://recursiveai.org/onearchive/docs/gzip-zlib/) | wrappers over Deflate |
| Deflate64 | APPNOTE 6.3.10, section 4.4.5 | [deflate64-decoder](https://recursiveai.org/onearchive/docs/deflate64-decoder/) | [deflate64-encoder](https://recursiveai.org/onearchive/docs/deflate64-encoder/) | [derivation by experiment](https://recursiveai.org/onearchive/docs/deflate64-derivation/) |
| Brotli | RFC 7932 | [brotli-decoder](https://recursiveai.org/onearchive/docs/brotli-decoder/) | [brotli-encoder](https://recursiveai.org/onearchive/docs/brotli-encoder/) | built-in dictionary |
| LZMA and LZMA2 | LZMA specification | [lzma-decoder](https://recursiveai.org/onearchive/docs/lzma-decoder/) | [lzma-encoder](https://recursiveai.org/onearchive/docs/lzma-encoder/) | |
| xz | xz file format specification | [xz](https://recursiveai.org/onearchive/docs/xz/) | [xz](https://recursiveai.org/onearchive/docs/xz/) | checks, filters, blocks |
| lzip | the lzip manual | [lzip](https://recursiveai.org/onearchive/docs/lzip/) | [lzip](https://recursiveai.org/onearchive/docs/lzip/) | |
| Branch and Delta filters | xz file format specification, 5.3.2 | [filters](https://recursiveai.org/onearchive/docs/filters/) | [filters](https://recursiveai.org/onearchive/docs/filters/) | x86, ARM, ARM64, RISC-V and others |
| bzip2 | public descriptions, no official specification | [bzip2-decoder](https://recursiveai.org/onearchive/docs/bzip2-decoder/) | [bzip2-encoder](https://recursiveai.org/onearchive/docs/bzip2-encoder/) | [derivation by experiment](https://recursiveai.org/onearchive/docs/bzip2-encoder-derivation/) |
| PPMd (variants H and I) | Shkarin's papers and public-domain reference sources | [ppmd](https://recursiveai.org/onearchive/docs/ppmd/) | [ppmd](https://recursiveai.org/onearchive/docs/ppmd/) | |
| LZX and MSZIP | [MS-PATCH], the cabinet format | [lzx-decoder](https://recursiveai.org/onearchive/docs/lzx-decoder/) | not provided | used by cab |
| Checksums | RFC 1952, RFC 3720, ECMA-182, xxHash description | [checksums](https://recursiveai.org/onearchive/docs/checksums/) | | CRC-32, CRC-32C, CRC-64, Adler-32, xxHash32, xxHash64 |

Also: [message mode](https://recursiveai.org/onearchive/docs/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](https://recursiveai.org/onearchive/docs/archive/) |
| Codec registration and trimming | | [archive-codecs](https://recursiveai.org/onearchive/docs/archive-codecs/) |
| tar | POSIX ustar and pax, GNU tar manual | [tar](https://recursiveai.org/onearchive/docs/tar/) |
| zip | APPNOTE 6.3.10, WinZip AES | [zip](https://recursiveai.org/onearchive/docs/zip/), [encryption](https://recursiveai.org/onearchive/docs/zip-encryption/), [recovery](https://recursiveai.org/onearchive/docs/zip-recovery/) |
| Single compressed files, `.tar.*` | | [single-streams](https://recursiveai.org/onearchive/docs/single-streams/) |
| 7z | `7zFormat.txt` | [reader](https://recursiveai.org/onearchive/docs/7z-reader/), [writer](https://recursiveai.org/onearchive/docs/7z-writer/), [AES key derivation](https://recursiveai.org/onearchive/docs/7z-aes-derivation/) |
| cpio and ar | | [cpio-ar](https://recursiveai.org/onearchive/docs/cpio-ar/) |
| ISO 9660 with Joliet and Rock Ridge | ECMA-119, Joliet, IEEE P1281 and P1282 | [iso](https://recursiveai.org/onearchive/docs/iso/) |
| cab | the cabinet file format | [cab-reader](https://recursiveai.org/onearchive/docs/cab-reader/) |
| RAR 5 (listing and stored entries) | the RAR 5 technote | [rar-reader](https://recursiveai.org/onearchive/docs/rar-reader/) |
| Microsoft compound files | [MS-CFB] | [cfb](https://recursiveai.org/onearchive/docs/cfb/) |

## Measurement and determinism

- [bench-method](https://recursiveai.org/onearchive/docs/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](https://recursiveai.org/onearchive/docs/hash-matrix/): how byte-identical output is checked across operating systems, CPUs, runtimes, thread counts
  and WebAssembly.
