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:
🌉 | 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) |
Currently supported compression methods:
- Stored (no compression)
- Brotli
- DEFLATE
- Snappy
- xz
- Zstandard
- 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. 😄
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.