The Rust implementation of Slipcase, a container format that attaches metadata to a file.
A .slpc file is a ZIP archive holding a payload file of any type together with a TOML metadata document describing it. The two become one file, so copying, moving, or sending the payload carries its metadata along.
This repository is a Cargo workspace holding two crates:
slpc— the library. Reads, writes, and validates containers.slipcase— the command-line tool, built on the library.
The specification lives in excelano/slipcase and is the authority on the format. https://slipcaseformat.org publishes it as pages.
This is a reference implementation: it exists to show that the specification is implementable and to be checked against it.
Add the Excelano apt repository once:
curl -fsSL https://excelano.com/apt/setup.sh | sudo shThen install it, so apt upgrade keeps it current:
sudo apt install slipcaseBoth amd64 and arm64 packages ship with every release.
brew install excelano/tap/slipcasecargo install slipcaseIn PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://github.com/excelano/slpc-rust/releases/latest/download/slipcase-installer.ps1 | iex"curl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/excelano/slpc-rust/main/install.sh | shTo remove it: swap install.sh for uninstall.sh in that line.
Every release also carries plain archives — macOS and Linux on both Intel and
ARM, Windows on Intel — each with a .sha256 beside it.
slipcase pack report.pdf --meta owner.toml # writes report.pdf.slpc
slipcase info report.pdf.slpc # prints the metadata; verbatim when redirected
slipcase repack report.pdf.slpc --meta new.toml # changes it in place, keeping the rest
slipcase validate report.pdf.slpc # exit 0 if conformant
slipcase unpack report.pdf.slpc --dest ./out # writes the payload and nothing else
Wherever a file is read, - names standard input, and wherever one is written it
names standard output.
Exit codes tell success from bad input, from a bad command line, from a container this build cannot judge. slipcase --help states the contract.
docs.rs/slpc is the library's own page, and its examples are compiled and run rather than transcribed.
DESIGN.md records the design and the reasoning behind each decision.
MIT. See LICENSE.