Freedom251 › Software Packaging Tools
cargo-bundle

What cargo-bundle is
cargo-bundle is a command-line tool for turning GUI executables built with Cargo into installable bundles. It produces .app bundles for macOS, .deb and .AppImage packages for Linux, and .msi installers for Windows. iOS and Windows support is experimental; Linux .rpm and Android .apk output are still pending. Install it with `cargo install cargo-bundle` to add it as a Cargo subcommand. Projects set app details such as name, identifier, icon, version, resources, and description in a `[package.metadata.bundle]` section of Cargo.toml. The `--target` option selects a build target, and macOS can combine architectures into a universal binary. The `--binary-path` option packages an existing executable without rebuilding or changing the input file. AppImage creation does not gather shared libraries automatically, so dynamically linked apps may need matching system libraries or staged libraries. Apple artifacts may be signed but are not notarized by cargo-bundle. The project is labeled very early alpha, with no stability guarantee for its metadata format. It is free and open source under either MIT or Apache licensing.
Who it suits
It suits developers who build GUI applications with Cargo and need bundles or installers for supported desktop targets. Teams should account for the experimental platform support and AppImage library requirements.
What it does well
- Creates .app, .deb, .AppImage, and .msi outputs
- Packages an existing executable without rebuilding it
- Supports target selection and macOS universal binaries
- Optional signing is described for Apple, Windows, and Linux artifacts
What to know first
- iOS and Windows support is experimental
- Linux .rpm and Android .apk output is pending
- AppImage libraries are not collected automatically
- Metadata format has no stability guarantee
Limits
The project is labeled very early alpha, with no stability guarantee for its bundle metadata format. iOS and Windows support are experimental; Linux RPM and Android APK output are pending.
Getting started
- Install Rust's cargo-bundle subcommand with `cargo install cargo-bundle`.
- Add bundle metadata in the project's `[package.metadata.bundle]` section of Cargo.toml.
- Select a target with `--target` when needed.
- Build and package the GUI executable, or pass an existing executable with `--binary-path`.
- Configure optional signing if needed for the relevant artifact.
Verdict
cargo-bundle covers several desktop packaging formats and can package a prebuilt executable. Its early-alpha status and platform-specific limitations are important considerations before relying on it for distribution.
Questions
Is cargo-bundle free?
Yes. It is open source and available under either the Apache Software License or MIT License.
What output formats does it create?
It creates macOS and iOS .app bundles, Linux .deb and .AppImage packages, and Windows .msi installers. iOS and Windows support are experimental.
Can it create Android APKs or Linux RPMs?
Those formats are still pending.
How do I install it?
The README says to run `cargo install cargo-bundle`, which adds it as a Cargo subcommand.
Can it package an executable that is already built?
Yes. The `--binary-path` option packages an existing executable without rebuilding it, and the input file is copied rather than modified.
Does cargo-bundle notarize Apple artifacts?
No. Apple artifacts can be signed, but cargo-bundle does not notarize them.
Facts from cargo-bundle's own pages
- AppImage limitation
- The README says shared libraries are not automatically collected for AppImage bundles, so dynamically linked GUI apps may need matching system libraries or staged libraries. · github.com, 11 Oct 2026
- App metadata
- Configuration supports fields such as app name, identifier, icons, version, resources, copyright, category, and descriptions. · github.com, 11 Oct 2026
- Configuration
- Projects configure bundle metadata in a `[package.metadata.bundle]` section of Cargo.toml, including fields such as name, icon, description, and copyright. · github.com, 11 Oct 2026
- Cross-compilation
- It supports selecting a target with `--target`, and macOS can combine architectures into a universal binary. · github.com, 11 Oct 2026
- Existing binaries
- The `--binary-path` option packages an already-built executable without rebuilding it, and the input file is copied rather than modified. · github.com, 11 Oct 2026
- Experimental platforms
- The README says iOS and Windows support is experimental. · github.com, 11 Oct 2026
- Formats
- It can produce macOS .app bundles, Linux .deb and .AppImage packages, and Windows .msi installers. · github.com, 11 Oct 2026
- Installation
- The README says to install it with `cargo install cargo-bundle`, which adds it as a subcommand to Cargo. · github.com, 11 Oct 2026
- License
- The project is licensed under either Apache Software License or MIT License. · github.com, 11 Oct 2026
- License and stability
- The repository README describes the project as very early alpha and says its bundle metadata format may change without a stability guarantee; it lists MIT or Apache licensing. · github.com, 11 Oct 2026
- Linux limitation
- The README says AppImage creation does not automatically collect shared libraries, so dynamically linked GUI apps may require matching system libraries or staged libraries. · github.com, 11 Oct 2026
- Linux output
- It can create .deb packages and .AppImage bundles for Linux. · github.com, 11 Oct 2026
- macOS and iOS output
- It can create .app bundles for macOS and iOS, with iOS support described as experimental. · github.com, 11 Oct 2026
- Maker
- The GitHub profile identifies the maker as George Burton; it does not state a headquarters or founding date. · github.com, 11 Oct 2026
- Notarization
- The README says Apple artifacts are signed but not notarized by cargo-bundle. · github.com, 11 Oct 2026
- Pending formats
- The README says support for Linux .rpm packages and Android .apk packages is still pending. · github.com, 11 Oct 2026
- Prebuilt executables
- The `--binary-path` option packages an already-built executable without running `cargo build` again. · github.com, 11 Oct 2026
- Purpose
- cargo-bundle generates installers or app bundles for GUI executables built with Cargo. · github.com, 11 Oct 2026
- Signing
- The README describes optional Apple bundle and DMG signing, optional Windows Authenticode signing, and configurable keyless Sigstore signing for Linux artifacts. · github.com, 11 Oct 2026
- Signing limitation
- The README says Apple artifacts are not notarized, and Windows signing requires the opt-in `windows-signing` feature, which links a GPL-3.0-or-later implementation. · github.com, 11 Oct 2026
- Stability
- The README labels the project “Very early alpha” and says the bundle metadata format may change with no guarantee of stability. · github.com, 11 Oct 2026
- Windows output
- It can create .msi installers for Windows, whose support is described as experimental. · github.com, 11 Oct 2026
Where cargo-bundle stands on Freedom251
- Software Packaging Tools#5 of 29