#archive #box #standard #zstd #deflate #snappy #xz #brotli #relative-path

box-format

Support library for the Box open standard archive format

4 releases

0.3.3 May 5, 2025
0.3.2 May 23, 2022
0.3.1 Apr 23, 2021
0.3.0 Apr 20, 2021

#183 in Compression


Used in 4 crates

Apache-2.0 OR MIT

75KB
2K SLoC

Box - Open Standard Archive Format

Actions Status

⚠️Box is under active development. Do not expect compatibility between versions until v1.0.

The .box file format and related tooling is designed to be a modern successor to formats such as .zip and .7z, removing several painpoints and introducing modern features and expectations:

Features

🌉Cross-platform path support, with relative paths only and platform-agnostic separators
🌐UTF-8 only, Unicode normalised path names and string data
🔍FST-based indexing for extremely fast path lookups
👩‍🚀Extensible with space-efficient attributes in key-value pairs for records and whole archives
↔️Configurable optional byte-alignment of files to enable easy memory mapping
💽Inode-based metadata for tree-based structuring, mapping closely to how filesystems work
📁Support for directories, files and links
🗜️Multiple compression methods within a single archive
🖥️A truly cross-platform command line tool
📜Well-defined, open specification of file format (due before v1.0)

Compression methods

Currently supported compression methods:

  • Stored (no compression)
  • Brotli
  • DEFLATE
  • Snappy
  • xz
  • Zstandard

Supported platforms

  • Windows
  • macOS
  • Linux
  • iOS
  • Android

See the fusebox repo for an example of the .box file format being used with a FUSE driver, also written in Rust. 😄

License

Licensed under either of

at your option.

Dependencies

~2–16MB
~165K SLoC