o< gak! gak!
-/)
^^
rockhopper builds packages for a wide variety of platforms.
BYOB (Bring Your Own Binaries).
% cd examples/go
% rockhopper
% tree .rockhopper/artifacts
.rockhopper/artifacts
├── alpine-linux
│ ├── raygun-0.0.1-r1.aarch64.apk
│ └── raygun-0.0.1-r1.x86_64.apk
├── appimage
│ ├── raygun-0.0.1-1-aarch64.AppImage
│ └── raygun-0.0.1-1-x86_64.AppImage
├── fedora
│ ├── raygun-0.0.1-1.aarch64.rpm
│ └── raygun-0.0.1-1.x86_64.rpm
...rockhopper is programming language agnostic. For more programming language samples, see examples.
cargo install rockhopperRegister ~/.cargo/bin to PATH environment variable.
For details on tuning rockhopper, see CONFIGURATION.
For details on building from source, see DEVELOPMENT.
rockhopper delegates package generation to a series of curated Docker images. Each image is provisioned with the essential tools needed to build your packages.
| Docker Tag | Package |
|---|---|
| alpine-linux | apk |
| appimage | appimage |
| fedora | rpm |
| freebsd | pkg |
| gentoo | gpkg.tar |
| macos | pkg |
| netbsd | tgz |
| openbsd | tgz |
| tarball | tgz |
| ubuntu | deb |
| windows | msi |
Image Pattern: n4jm4/rockhopper:<tag>
Multiplatform images also available. Supported platforms may vary by distro. Version pin tag aliases are also available, of the form:
[<rockhopper-version>-]<distro>[-<release-nickname]
We target one predominant operating system (e.g. Ubuntu) for a package manager type (e.g. apt). Some packages may interoperate with similar operating systems (e.g. Debian, Linux Mint, Pop!_OS, Raspberry Pi OS, WSL, et. al.) When in doubt, create a custom image for your specific platform.
For information on developing custom rockhopper images, see the rocklets interface.
Fully static Go/musl binaries tend to improve portability for compiled applications.
Lost? Try Raspberry Pi for Dummies. We all gotta start somewhere.
A dream of impossible colors... Let's make vendor lock a thing of the past.
-< zzZ... *as if!* zzZ...
,/)
^^
Prior art, personal plugs, and tools for developing portable applications (including non-Rust projects)!
- alien - an OS package converter
- apple-platform-rs, bomutils, stuckliste - Apple Bom format research
- cargo - a crossplatform package manager for Rust projects
- fpm - an older, host native package generator
- go mod - a crossplatform package manager for Go applications
- goreleaser - a crossplatform binary & package generator
- mcandre/crit - an automated Rust multiplatform compiler
- mcandre/tuco - an automated Go multiplatform compiler
- n4jm4/raspberry-pi-os - a Docker base image for Raspberry Pi OS
- msitools - a Linux framework for generating Windows MSI packages
- tree - recursive directory browser
- UTM - a macOS emulator with support for NetBSD and other operating systems
- xgo - an automated cGo multiplatform compiler
🐧