Install
Prebuilt binary (recommended)
Pick the v0.4.0 release for your platform from the GitHub releases page:
| Platform | Asset |
|---|---|
| Linux x86_64 (musl) | upxz-x86_64-unknown-linux-musl.tar.xz |
| Linux aarch64 (musl) | upxz-aarch64-unknown-linux-musl.tar.xz |
| macOS x86_64 | upxz-x86_64-apple-darwin.tar.xz |
| macOS aarch64 (Apple Silicon) | upxz-aarch64-apple-darwin.tar.xz |
| Windows x86_64 | upxz-x86_64-pc-windows-msvc.tar.xz |
All Linux builds are musl, statically linked — the same binary runs on
Alpine and every glibc distro (Ubuntu / Debian / Fedora / Arch). No libc
dependency.
tar xJf upxz-<target>.tar.xz -C /usr/local/bin --strip-components=1 bin/upxz
Verify the download
Each release ships SHA256SUMS, SHA256SUMS.sigstore.json, and a per-tarball
.sigstore.json (keyless cosign signature).
# checksum
sha256sum -c SHA256SUMS --ignore-missing
# signature (keyless cosign over an OIDC token)
cosign verify-blob --bundle upxz-<target>.tar.xz.sigstore.json upxz-<target>.tar.xz
cosign verify-blob prints Verified OK on success.
Build from source
# from git (full feature set: packer + SFX -c):
cargo install --git https://github.com/ljh-sh/upxz
This builds with the SFX companion crates (stub / loader / winstub) and
includes the upxz -c self-extractor builder.
From crates.io (packer only)
cargo install upxz
A cargo publish tarball strips the nested SFX companion crates, so a
crates.io install has the runner/packer and -d/-l/-t/--bin for
existing SFXes, but upxz <FILE> (SFX pack) refuses with a clear message.
For SFX packing, use a release binary or cargo install --git.
Verify the build
# run the 45-test suite
cargo test