#box #archive #brotli-compression #format #mmap #zstandard #fst #zip #open

box-format

Support library for the Box open standard archive format

3 releases

0.3.2 May 23, 2022
0.3.1 Apr 23, 2021
0.3.0 Apr 20, 2021

#311 in Compression

Download history 24/week @ 2023-10-22 31/week @ 2023-10-29 26/week @ 2023-11-05 30/week @ 2023-11-12 27/week @ 2023-11-19 36/week @ 2023-11-26 28/week @ 2023-12-03 62/week @ 2023-12-10 26/week @ 2023-12-17 24/week @ 2023-12-24 20/week @ 2023-12-31 18/week @ 2024-01-07 24/week @ 2024-01-14 19/week @ 2024-01-21 22/week @ 2024-01-28 36/week @ 2024-02-04

103 downloads per month
Used in 4 crates

Apache-2.0 OR MIT

74KB
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.6–6MB
~105K SLoC