Packaging

From Rust Community Wiki

Packaging is the process of creating, modifying and bundling the files your application needs to function outside your development environment. It may also include creating installers and/or artifacts for particular package managers or operating systems.

There are a couple of crates which let you package your application for desktop or server environment:

  • Cargo vec.svgcargo-apk 0.9.7 - Build .apk files for Android.
  • Cargo vec.svgcargo-arch 0.1.5 - Arch Linux (PKGBUILD).
  • Cargo vec.svgcargo-bundle 0.6.0 - .app for macOS and iOS, .deb for Linux and .msi for Windows (README says that Windows and macOS support is experimental). There are also plans for .rpm support for Linux and .apk support for Android.
  • Cargo vec.svgcargo-deb 2.0.0-rc.2 - Build .deb packages for Linux.
  • Cargo vec.svgcargo-makepkg 0.1.0 - Arch Linux (PKGBUILD). Might be abandoned.
  • Cargo vec.svgcargo-pkgbuild 0.1.1 - Arch Linux (PKGBUILD).
  • Cargo vec.svgpkger 0.0.4 - .rpm and .rpm. Uses docker?
  • Cargo vec.svgcargo-rpm 0.8.0 - Build .rpm packages for Linux.
  • Cargo vec.svgpackapp 0.4.0 - Formerly Cargo vec.svgcargo-app 0.0.0 . Build .app bundles for macOS.

There are some other crates which are somewhat orthogonal to the above crates, but are nevertheless useful for application distribution.

  • Cargo vec.svgrelease-manager 0.1.4 - Build your crate for multiple architectures and operating systems in one go. Might be abandoned.
  • Cargo vec.svgcargo-tarball 0.0.1 - Documentation seems sparse/non-existent. Presumably creates tarballs with your executables.

There are also some crates which target web technologies:

TODO: Look closer at the following crates: