A desktop application for slipcase containers.
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.
Slipcase opens a container, shows what is in it, and hands the payload to whatever application the operating system has registered for it. It parses no containers itself: every read, every write, and every verdict comes from slpc.
The specification lives in excelano/slipcase and is the authority on the format.
cargo build --release
A Rust toolchain is all it needs. Nothing in the dependency tree compiles C.
On Linux, the desktop integration and the media type:
./packaging/linux/install.sh
That registers application/x.slipcase+zip against *.slpc, so a file manager
knows what a container is and what opens one. packaging/debian/build-deb.sh
builds the package the Excelano apt repository ships. packaging/README.md has
the detail.
Stages 1 through 3 of DESIGN.md §7 ship: opening a container and rendering
every state the design names, editing the metadata and writing it back, and
extracting and replacing the payload. Stage 4, file association, ships on Linux.
macOS and Windows have never been built or run. HANDOFF.md says what each owes
and briefs the work.
DESIGN.md is what this is and the order it is being built in. It is amended in
place where building it proved it wrong, and every amendment says what was
measured.
cargo test
cargo clippy --all-targets
The slipcase conformance corpus is run as a command rather than as a test,
because it needs a checkout of excelano/slipcase with its cases generated:
cargo run --bin corpus -- /path/to/slipcase/conformance
It puts all 77 fixtures through this application's own reading of them: the verdict, whether a metadata tree and a payload card are shown, extraction at the declared length, the pre-flight answer against what extraction then does, a full rewrite round trip with key order preserved, a rename, and a payload replacement under two names.
MIT