Pack files into ZIP, 7z or tar. Get the same bytes back.
A small, careful archiver for your terminal, with a desktop app on the way. It won't overwrite files unless you ask, cleans up when you cancel, and keeps your files on your device.
cargo install --locked --git https://github.com/megasoft1978/bytepleat --tag v0.5.2
Show the full command
Downloads the archive, checks its SHA-256 and runs it, in one go.
Alpha The desktop app is an early alpha. The command-line tool is released (0.5.2).
Three things, done carefully
- Create an archive
- Choose files or a folder, pick ZIP, 7z or compressed tar, and say where it goes. Bytepleat writes to a temporary file and only gives it the final name when it is complete.
- Extract into a new folder
- Everything lands in a fresh folder, never on top of existing files. Unsafe paths, links and special files are refused before anything is written.
- Look inside first
- Inspect lists what an archive holds without extracting anything. Test decodes every byte to check that it is intact.
What Bytepleat will not do
- Overwrite your files by surprise
- An existing output stops the job unless you pass
--force. Extraction always goes into a new folder. Your input files are never moved or removed. - Send anything anywhere
- No accounts and no uploads. It reads and writes files on your device and works offline.
- Leave a mess when you cancel
- Named outputs are written to a temporary file first, so stopping a job leaves your existing files as they were.
- Invent a format
- Everything it writes is standard ZIP, 7z, tar, Zstandard, gzip or LZ4, and opens in the tools you already have.
- Make speed or size claims
- Results depend on your files. The benchmark notes publish the method, so you can rerun them and judge.
Install
Version 0.5.2 of the command-line tool, as one archive per system. Packages are not signed yet, so check the SHA-256 checksum before you run it. A checksum catches a damaged download; it does not prove who built the file.
macOS
For Macs with Apple silicon. On an Intel Mac, install from source.
Download for macOS SHA-256 checksum file
Download
Get the archive and its checksum file.
curl -fL --remote-name-all \ https://github.com/megasoft1978/bytepleat/releases/download/v0.5.2/bytepleat-0.5.2-aarch64-apple-darwin.tar.gz \ https://github.com/megasoft1978/bytepleat/releases/download/v0.5.2/bytepleat-0.5.2-aarch64-apple-darwin.tar.gz.sha256Check the checksum
It should print OK. Anything else means the download is damaged.
shasum -a 256 -c bytepleat-0.5.2-aarch64-apple-darwin.tar.gz.sha256Open it
Extract the folder and run the tool from it. Add that folder to your
PATHto runbytepleatfrom anywhere.tar -xzf bytepleat-0.5.2-aarch64-apple-darwin.tar.gz && ./bytepleat-0.5.2-aarch64-apple-darwin/bytepleat --help
Packages are not signed yet and the macOS build is not notarised. If macOS blocks the first run, here is how to open it anyway.
Windows
For 64-bit Windows on x86-64. Commands are for PowerShell.
Download for Windows SHA-256 checksum file
Download
Get the archive and its checksum file.
Invoke-WebRequest -Uri 'https://github.com/megasoft1978/bytepleat/releases/download/v0.5.2/bytepleat-0.5.2-x86_64-pc-windows-msvc.zip' -OutFile bytepleat-0.5.2-x86_64-pc-windows-msvc.zip Invoke-WebRequest -Uri 'https://github.com/megasoft1978/bytepleat/releases/download/v0.5.2/bytepleat-0.5.2-x86_64-pc-windows-msvc.zip.sha256' -OutFile bytepleat-0.5.2-x86_64-pc-windows-msvc.zip.sha256Check the checksum
It should print SHA-256 verified.
$asset = 'bytepleat-0.5.2-x86_64-pc-windows-msvc.zip' $entry = Get-Content -LiteralPath "$asset.sha256" -Raw if ($entry -notmatch '^([0-9a-fA-F]{64})\s+bytepleat-0\.5\.1-x86_64-pc-windows-msvc\.zip\s*$') { throw 'Invalid checksum sidecar or filename' } if ((Get-FileHash -LiteralPath $asset -Algorithm SHA256).Hash -ne $Matches[1]) { throw 'SHA-256 mismatch' } 'SHA-256 verified'Open it
Extract the folder and run the tool from it. Add that folder to your
PATHto runbytepleatfrom anywhere.Expand-Archive -LiteralPath .\bytepleat-0.5.2-x86_64-pc-windows-msvc.zip -DestinationPath . .\bytepleat-0.5.2-x86_64-pc-windows-msvc\bytepleat.exe --help
Windows needs the Microsoft Visual C++ runtime (x64), which is not bundled. If Windows reports that VCRUNTIME140.dll is missing, install it from Microsoft.
Linux
For x86-64 with the GNU C library. The package was tested on Ubuntu 24.04; older systems may need a source build.
Download for Linux SHA-256 checksum file
Download
Get the archive and its checksum file.
curl -fL --remote-name-all \ https://github.com/megasoft1978/bytepleat/releases/download/v0.5.2/bytepleat-0.5.2-x86_64-unknown-linux-gnu.tar.gz \ https://github.com/megasoft1978/bytepleat/releases/download/v0.5.2/bytepleat-0.5.2-x86_64-unknown-linux-gnu.tar.gz.sha256Check the checksum
It should print OK. Anything else means the download is damaged.
sha256sum -c bytepleat-0.5.2-x86_64-unknown-linux-gnu.tar.gz.sha256Open it
Extract the folder and run the tool from it. Add that folder to your
PATHto runbytepleatfrom anywhere.tar -xzf bytepleat-0.5.2-x86_64-unknown-linux-gnu.tar.gz && ./bytepleat-0.5.2-x86_64-unknown-linux-gnu/bytepleat --help
There is no Linux ARM64 build yet. On ARM64, install from source.
From source
Any system with Rust 1.93 or newer and a C compiler toolchain.
Install the tagged release
Cargo builds it with the locked dependency versions and puts
bytepleaton your path.cargo install --locked --git https://github.com/megasoft1978/bytepleat --tag v0.5.2Check it runs
bytepleat --help
The desktop app has no installer yet. To try the alpha, follow the build steps in the README.
Quick start
Zstandard is the default. Use --format for gzip, LZ4, ZIP or 7z. The command-line guide covers the rest.
# compress one file, then restore it
bytepleat compress report.pdf
bytepleat decompress report.pdf.zst -o report-restored.pdf
# pack a folder, then unpack it into a new folder
bytepleat pack project -o project.tar.zst
bytepleat unpack project.tar.zst -o project-restored
# look inside without extracting, then fully decode and check
bytepleat info project.tar.zst
bytepleat test project.tar.zst
Formats
Support means a defined subset, not every file that carries the extension.
| Format | Create | Open and test | Limits |
|---|---|---|---|
| ZIP | Yes | Yes | Classic Stored and Deflate only. Up to 65,534 entries. |
| 7z | Yes | Yes | Writes LZMA2. Reads a bounded set of methods, unencrypted and single-volume. Up to 100,000 entries. |
| tar + Zstandard | Yes | Yes | Regular files and folders only. Links and special files are refused. |
| tar + gzip | Yes | Yes | Regular files and folders only. Links and special files are refused. |
| tar + LZ4 | Yes | Yes | Regular files and folders only. Links and special files are refused. |
| Zstandard, gzip, LZ4 single file, command line only | Yes | Yes | Only Zstandard uses several threads. LZ4 files made of joined frames are refused. |
| RAR | No | Recognised only | info can tell you it is RAR. Nothing is extracted. |
Not supported: passwords and encryption, ZIP64, split archives, RAR extraction. Folder archives keep file contents and relative paths, not permissions, ownership, links or timestamps. Exact limits
When to use something else
Bytepleat is small and strict on purpose. Mature tools do more.
| Question | Bytepleat today |
|---|---|
| Platforms | Command-line packages for macOS on Apple silicon, Linux x86-64 and Windows x86-64. Other systems can build from source. |
| Creates archives | Yes: ZIP, 7z, and tar with Zstandard, gzip or LZ4 |
| Opens RAR | No. It recognises RAR but does not extract it. |
| Passwords and encryption | No |
| Full filesystem backup | No. Permissions, ownership, links, extended attributes and timestamps are not restored. |
| Graphical app | Early alpha, built from source. No installer yet. |
| Command line | Yes. Released as version 0.5.2. |
| Maturity | Version 0.5.2 command-line tool; alpha desktop app |
If a “No” above matters to you, use a mature archiver such as 7-Zip, Keka, The Unarchiver, or tar with zstd. Check each project's own site for what it supports today. We do not summarise other tools here, because their features change and we have not verified them for this page.
Benchmarks: where it wins, ties and loses
Measured on one Apple M5 Max Mac, for two workloads and one control. Not a general ranking.
How to read this
- Smaller archive bytes are better.
- Encode and decode times are the median of 5 runs, in seconds. Lower is better.
- Results apply to these workloads only.
| Workload and setting | Tool | Archive bytes | Encode median (s) | Decode median (s) | Source |
|---|---|---|---|---|---|
| LZ4 source tree, ZIP Deflate 6 | Bytepleat | 480,556 | 0.03356 | 0.02300 | 42-group CSV |
| LZ4 source tree, ZIP Deflate 6 | 7-Zip 26.04 | 478,266 | 0.09671 | 0.02586 | 42-group CSV |
| LZ4 source tree, 7z LZMA2 5 | Bytepleat | 269,846 | 0.24432 | 0.02965 | 42-group CSV |
| LZ4 source tree, 7z LZMA2 5 | 7-Zip 26.04 | 270,414 | 0.22349 | 0.02707 | 42-group CSV |
| LZ4 source tree, tar + Zstandard 3 | Bytepleat | 352,317 | 0.02137 | 0.02301 | 42-group CSV |
| LZ4 source tree, tar + Zstandard 3 | System tar + Zstandard 1.5.7 | 354,834 | 0.01741 | 0.02467 | 42-group CSV |
| Control: generated repeated text, ZIP Deflate 6 | Bytepleat | 49,350 | 0.01676 | 0.00577 | benchmarks.md |
| Control: generated repeated text, ZIP Deflate 6 | 7-Zip 26.04 | 26,450 | 0.09498 | 0.00917 | benchmarks.md |
On the LZ4 source tree, Bytepleat ZIP 6 encoded in 0.03356 s and 7-Zip ZIP 6 in 0.09671 s, so 7-Zip took about 2.9 times as long. Its archive was 0.48% larger. Bytepleat 7z was 0.21% smaller than 7-Zip 7z, but its encode and decode were about 9% slower. Bytepleat tar + Zstandard was 0.7% smaller than system tar, but its encode was slower. On the repeated-text control, Bytepleat is worse: 49,350 bytes against 26,450. Full notes
| Workload and setting | Tool | Archive bytes | Encode median (s) | Decode median (s) | Source |
|---|---|---|---|---|---|
| LZ4 source tree, 7z LZMA2 5 | Bytepleat | 269,846 | 0.46664 | 0.03639 | RAR CSV |
| LZ4 source tree, RAR5 m3 | RAR 7.23 trial | 298,367 | 0.14220 | 0.04095 | RAR CSV |
| LZ4 source tree, RAR5 m5 | RAR 7.23 trial | 295,577 | 0.14878 | 0.03386 | RAR CSV |
In this run RAR encoded faster than Bytepleat 7z, and its archives were larger on the LZ4 source tree. This run's Bytepleat 7z encode (0.46664 s) differs from the run above (0.24432 s), so compare within one table only. RAR notes
Caveats
- One machine: a single Apple M5 Max Mac running macOS 27.0.1.
- Provisional: one run with 5 repeats per setting.
- No quiescence check: host activity was not controlled, so small timing differences are exploratory.
- Not a general ranking: these numbers do not say which tool is better overall.
- No speed claim where results show parity or a loss: 7z encode, tar encode and the text control.
Sources: run provenance, RAR provenance.
Desktop app Alpha
The desktop app creates, extracts and inspects ZIP, 7z and compressed tar archives with the same rules as the command line. It is an early alpha: there is no installer, you build it from source, and testing across platforms is not finished. The desktop validation notes list what has and has not been checked.
Questions
Why is it called Bytepleat?
A pleat is a fold that makes something wide compact and lets it open flat again. That is the job.
Is it faster or smaller than other archivers?
It uses the same standard codecs, so results depend on your files and settings. We make no general speed or size claim. The benchmark notes show the method and results so you can judge.
Does it upload my files?
No. Bytepleat works on files on your device, needs no account, and runs offline.
Why does macOS block the first run?
The packages are not signed and the macOS build is not notarised yet. Check the SHA-256 checksum first. Then open System Settings, go to Privacy & Security, and choose Open Anyway for bytepleat. Files downloaded with curl are usually not blocked.
Can it open RAR or password-protected ZIP files?
Bytepleat recognises RAR files but does not extract them. Password-protected ZIP files and encryption are not supported.
What happens if I cancel?
The job stops. Named outputs are written to a temporary file first, so an unfinished archive never takes the final name, and your originals are untouched. Output sent to standard output is a stream and can be partial.
Is it safe to extract archives from strangers?
Bytepleat refuses unsafe paths and links and applies size and entry limits, but that is not a security guarantee, and test does not scan for malware. See the security and limits notes.
Is the desktop app ready for daily use?
Not yet. It is an alpha you build from source. The command-line tool is further along.