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.

Version 0.5.2 · command-line tool for macOS, Linux and Windows · Release notes

Install from source with Cargo
cargo install --locked --git https://github.com/megasoft1978/bytepleat --tag v0.5.2

Alpha The desktop app is an early alpha. The command-line tool is released (0.5.2).

project.zip · 1 archive

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.
Illustration of the desktop app's empty state, drawn in HTML and CSS. It is not a screenshot, and the app is an alpha.

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

  1. Download

    Get the archive and its checksum file.

    Terminal
    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.sha256
  2. Check the checksum

    It should print OK. Anything else means the download is damaged.

    Terminal
    shasum -a 256 -c bytepleat-0.5.2-aarch64-apple-darwin.tar.gz.sha256
  3. Open it

    Extract the folder and run the tool from it. Add that folder to your PATH to run bytepleat from anywhere.

    Terminal
    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

  1. Download

    Get the archive and its checksum file.

    PowerShell
    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.sha256
  2. Check the checksum

    It should print SHA-256 verified.

    PowerShell
    $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'
  3. Open it

    Extract the folder and run the tool from it. Add that folder to your PATH to run bytepleat from anywhere.

    PowerShell
    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

  1. Download

    Get the archive and its checksum file.

    Terminal
    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.sha256
  2. Check the checksum

    It should print OK. Anything else means the download is damaged.

    Terminal
    sha256sum -c bytepleat-0.5.2-x86_64-unknown-linux-gnu.tar.gz.sha256
  3. Open it

    Extract the folder and run the tool from it. Add that folder to your PATH to run bytepleat from anywhere.

    Terminal
    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.

  1. Install the tagged release

    Cargo builds it with the locked dependency versions and puts bytepleat on your path.

    Terminal
    cargo install --locked --git https://github.com/megasoft1978/bytepleat --tag v0.5.2
  2. Check it runs

    Terminal
    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.

Terminal
# 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.

FormatCreateOpen and testLimits
ZIPYesYesClassic Stored and Deflate only. Up to 65,534 entries.
7zYesYesWrites LZMA2. Reads a bounded set of methods, unencrypted and single-volume. Up to 100,000 entries.
tar + ZstandardYesYesRegular files and folders only. Links and special files are refused.
tar + gzipYesYesRegular files and folders only. Links and special files are refused.
tar + LZ4YesYesRegular files and folders only. Links and special files are refused.
Zstandard, gzip, LZ4 single file, command line onlyYesYesOnly Zstandard uses several threads. LZ4 files made of joined frames are refused.
RARNoRecognised onlyinfo 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.

Bytepleat 0.5.2, gaps included
QuestionBytepleat today
PlatformsCommand-line packages for macOS on Apple silicon, Linux x86-64 and Windows x86-64. Other systems can build from source.
Creates archivesYes: ZIP, 7z, and tar with Zstandard, gzip or LZ4
Opens RARNo. It recognises RAR but does not extract it.
Passwords and encryptionNo
Full filesystem backupNo. Permissions, ownership, links, extended attributes and timestamps are not restored.
Graphical appEarly alpha, built from source. No installer yet.
Command lineYes. Released as version 0.5.2.
MaturityVersion 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.
Run 2026-10-15: Apple M5 Max Mac, macOS 27.0.1, 5 repeats
Workload and settingToolArchive bytesEncode median (s)Decode median (s)Source
LZ4 source tree, ZIP Deflate 6Bytepleat480,5560.033560.0230042-group CSV
LZ4 source tree, ZIP Deflate 67-Zip 26.04478,2660.096710.0258642-group CSV
LZ4 source tree, 7z LZMA2 5Bytepleat269,8460.244320.0296542-group CSV
LZ4 source tree, 7z LZMA2 57-Zip 26.04270,4140.223490.0270742-group CSV
LZ4 source tree, tar + Zstandard 3Bytepleat352,3170.021370.0230142-group CSV
LZ4 source tree, tar + Zstandard 3System tar + Zstandard 1.5.7354,8340.017410.0246742-group CSV
Control: generated repeated text, ZIP Deflate 6Bytepleat49,3500.016760.00577benchmarks.md
Control: generated repeated text, ZIP Deflate 67-Zip 26.0426,4500.094980.00917benchmarks.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

RAR trial run, separate from the table above: RARLAB RAR 7.23 command-line trial, LZ4 source tree
Workload and settingToolArchive bytesEncode median (s)Decode median (s)Source
LZ4 source tree, 7z LZMA2 5Bytepleat269,8460.466640.03639RAR CSV
LZ4 source tree, RAR5 m3RAR 7.23 trial298,3670.142200.04095RAR CSV
LZ4 source tree, RAR5 m5RAR 7.23 trial295,5770.148780.03386RAR 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.