cargo-bundle
cargo-bundle is a command-line tool for packaging GUI executables built with Cargo as installers or application bundles.
What cargo-bundle is
cargo-bundle is a command-line tool for packaging GUI executables built with Cargo as installers or application bundles. It can create .app bundles for macOS and iOS, .deb packages and .AppImage bundles for Linux, and .msi installers for Windows. The README describes iOS and Windows support as experimental; Linux .rpm and Android .apk output are pending. Install it with `cargo install cargo-bundle` to add it as a Cargo subcommand, then configure bundle metadata in a `[package.metadata.bundle]` section of Cargo.toml. The `--target` option selects a target, and macOS can combine architectures into a universal binary. With `--binary-path`, it can package an existing executable without rebuilding it, copying rather than modifying the input file. AppImage creation does not automatically collect shared libraries, so dynamically linked applications may need matching or staged libraries. Apple artifacts are not notarized by cargo-bundle. The project is licensed under either Apache Software License or MIT License. Its README calls it very early alpha and says the metadata format may change without a stability guarantee.
Good
- Produces bundles or installers for several targets.
- Adds as a subcommand through Cargo installation.
- Can package an existing executable without rebuilding.
- Supports target selection and macOS universal binaries.
Watch out
- iOS and Windows support are experimental.
- Linux .rpm and Android .apk output are pending.
- AppImage creation does not gather shared libraries automatically.
- Apple artifacts are not notarized.
Who it suits
cargo-bundle is for developers building GUI executables with Cargo who need application bundles or installers for listed desktop targets. Its experimental support and early-alpha status make it important to check target and packaging requirements first.
Verdict
cargo-bundle covers several packaging formats and includes options for target selection and existing binaries. Its early-alpha status, experimental targets, and platform-specific limitations are significant considerations for build workflows.
The facts
Each one read from cargo-bundle's own pages, with the date it was checked.
Where it runs
- 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.checked 11 Oct 2026
- App metadata
- Configuration supports fields such as app name, identifier, icons, version, resources, copyright, category, and descriptions.checked 11 Oct 2026
- Experimental platforms
- The README says iOS and Windows support is experimental.checked 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.checked 11 Oct 2026
- Linux output
- It can create .deb packages and .AppImage bundles for Linux.checked 11 Oct 2026
- macOS and iOS output
- It can create .app bundles for macOS and iOS, with iOS support described as experimental.checked 11 Oct 2026
- Windows output
- It can create .msi installers for Windows, whose support is described as experimental.checked 11 Oct 2026
What it does
- Configuration
- Projects configure bundle metadata in a `[package.metadata.bundle]` section of Cargo.toml, including fields such as name, icon, description, and copyright.checked 11 Oct 2026
- Cross-compilation
- It supports selecting a target with `--target`, and macOS can combine architectures into a universal binary.checked 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.checked 11 Oct 2026
- Formats
- It can produce macOS .app bundles, Linux .deb and .AppImage packages, and Windows .msi installers.checked 11 Oct 2026
- Installation
- The README says to install it with `cargo install cargo-bundle`, which adds it as a subcommand to Cargo.checked 11 Oct 2026
- License
- The project is licensed under either Apache Software License or MIT License.checked 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.checked 11 Oct 2026
- Notarization
- The README says Apple artifacts are signed but not notarized by cargo-bundle.checked 11 Oct 2026
- Pending formats
- The README says support for Linux .rpm packages and Android .apk packages is still pending.checked 11 Oct 2026
- Prebuilt executables
- The `--binary-path` option packages an already-built executable without running `cargo build` again.checked 11 Oct 2026
- Purpose
- cargo-bundle generates installers or app bundles for GUI executables built with Cargo.checked 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.checked 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.checked 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.checked 11 Oct 2026
The company
- Maker
- The GitHub profile identifies the maker as George Burton; it does not state a headquarters or founding date.checked 11 Oct 2026
Alternatives to cargo-bundle
- 1
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 2

Tauri Bundler
Free planAndroidiOSLinuxmacOS7.2Free plan - 3

Advanced Installer
Free planWindows6.6From $399 a year - 4

WiX Toolset
Free planAPIExtensionWindows6.6From $6,500 a year - 5
CyberInstaller Suite
Free planWindows6.5€39.90 one-time - 6
makeself
Free planLinuxmacOSSelf-hostedWindows6.5Free plan
