{"id":45667269,"url":"https://github.com/mcandre/rockhopper","last_synced_at":"2026-04-02T13:06:17.677Z","repository":{"id":336133234,"uuid":"1148406065","full_name":"mcandre/rockhopper","owner":"mcandre","description":"metapackage generator","archived":false,"fork":false,"pushed_at":"2026-02-13T03:12:38.000Z","size":127,"stargazers_count":5,"open_issues_count":35,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T11:49:43.140Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcandre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-02T23:37:49.000Z","updated_at":"2026-02-13T03:12:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mcandre/rockhopper","commit_stats":null,"previous_names":["mcandre/rockhopper"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mcandre/rockhopper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Frockhopper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Frockhopper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Frockhopper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Frockhopper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcandre","download_url":"https://codeload.github.com/mcandre/rockhopper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcandre%2Frockhopper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29779262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-24T10:05:55.166Z","updated_at":"2026-04-02T13:06:17.661Z","avatar_url":"https://github.com/mcandre.png","language":"Shell","funding_links":["https://github.com/sponsors/mcandre"],"categories":[],"sub_categories":[],"readme":"# rockhopper: metapackage generator\n\n[![Crates.io Downloads (recent)](https://img.shields.io/crates/dr/rockhopper?label=crate%20downloads)](https://crates.io/crates/rockhopper) [![Docker Pulls](https://img.shields.io/docker/pulls/n4jm4/rockhopper)](https://hub.docker.com/r/n4jm4/rockhopper) [![docs.rs](https://img.shields.io/docsrs/rockhopper)](https://docs.rs/rockhopper/latest/rockhopper/) [![license](https://img.shields.io/badge/license-BSD-0)](LICENSE.md) [![Donate](https://img.shields.io/badge/%E2%99%A5-Sponsor-BF3988)](https://github.com/sponsors/mcandre)\n\n```text\n  o\u003c  gak! gak!\n-/)\n ^^\n```\n\n# ABOUT\n\nrockhopper provides a unified framework for building binary based OS packages across many kinds of platforms.\n\nBYOB (Bring Your Own Binaries).\n\n# EXAMPLES\n\n```console\n% cd examples/go\n\n% rockhopper\n\n% tree .rockhopper/artifacts\n.rockhopper/artifacts\n├── alpine-linux\n│   ├── raygun-0.0.1-r1.aarch64.apk\n│   └── raygun-0.0.1-r1.x86_64.apk\n├── fedora\n│   ├── raygun-0.0.1-1.aarch64.rpm\n│   └── raygun-0.0.1-1.x86_64.rpm\n├── freebsd-amd64\n│   └── raygun-0.0.1_1.pkg\n├── freebsd-arm64\n│   └── raygun-0.0.1_1.pkg\n...\n```\n\nrockhopper is programming language agnostic. For more programming language samples, see [examples](examples).\n\n# DOWNLOAD\n\n```sh\ncargo install rockhopper\n```\n\n## Prerequisites\n\n* [cargo](https://doc.rust-lang.org/cargo/)\n* [Docker](https://www.docker.com/)\n\n## Postinstall\n\nRegister `~/.cargo/bin` to `PATH` environment variable.\n\nFor details on tuning rockhopper, see [CONFIGURATION](CONFIGURATION.md).\n\nFor details on building from source, see [DEVELOPMENT](DEVELOPMENT.md).\n\n# DOCKER IMAGES\n\n[Docker Hub](https://hub.docker.com/r/n4jm4/rockhopper)\n\nWhere other package generators rely on host native tools, rockhopper abstracts package generation as Docker images. This abstraction simplifies the setup process, and reduces the impact of vendor lock for each of the host and target platforms involved.\n\n## Stock Images\n\n| Package Manager | File Extension | Distro Primary | Docker Tag     |\n| --------------- | -------------- | -------------- | -------------- |\n| apk             | `*.apk`        | Alpine Linux   | `alpine-linux` |\n| apt             | `*.deb`        | Ubuntu         | `ubuntu`       |\n| dnf             | `*.rpm`        | Fedora         | `fedora`       |\n| installer       | `*.pkg`        | macOS          | `macos`        |\n| msiexec         | `*.msi`        | Windows        | `windows`      |\n| pkg             | `*.pkg`        | FreeBSD        | `freebsd`      |\n| pkg_add         | `*.tgz`        | NetBSD         | `netbsd`       |\n\nImage Pattern: `n4jm4/rockhopper:\u003ctag\u003e`\n\nMultiplatform images also available. Supported platforms may vary by distro. Version pin tag aliases are also available, of the form:\n\n`[\u003crockhopper-version\u003e-]\u003cdistro\u003e[-\u003crelease-nickname]`\n\nDistro primaries exemplify entire families of related platforms. For example, apt serves packages for Ubuntu, but also Debian, Linux Mint, Pop!_OS, Raspberry Pi OS, WSL, et. al.\n\nFor information on developing custom rockhopper images, see the [rocklets interface](ROCKLETS.md).\n\n# TIPS\n\nFully static [Go](https://go.dev/)/[musl](https://musl.libc.org/) binaries tend to improve portability for compiled applications.\n\nLost? Try [Raspberry Pi for Dummies](https://www.amazon.com/Raspberry-Pi-Dummies-Sean-McManus/dp/1119796822/). *We all gotta start somewhere.*\n\nA dream of impossible colors... Let's make vendor lock a thing of the past.\n\n```text\n  -\u003c zzZ... *as if!* zzZ...\n,/)\n ^^\n```\n\n# RESOURCES\n\nPrior art, personal plugs, and tools for developing portable applications (including non-Rust projects)!\n\n* [alien](https://joeyh.name/code/alien/) - an OS package converter\n* [apple-platform-rs](https://github.com/indygreg/apple-platform-rs), [bomutils](https://github.com/hogliux/bomutils), [stuckliste](https://github.com/igankevich/stuckliste) - Apple Bom format research\n* [cargo](https://doc.rust-lang.org/cargo/) - a crossplatform package manager for Rust projects\n* [fpm](https://github.com/jordansissel/fpm) - an older, host native package generator\n* [go mod](https://go.dev/doc/modules/gomod-ref) - a crossplatform package manager for Go applications\n* [goreleaser](https://goreleaser.com/) - a crossplatform binary \u0026 package generator\n* [mcandre/crit](https://github.com/mcandre/crit) - an automated Rust multiplatform compiler\n* [mcandre/tuco](https://github.com/mcandre/tuco) - an automated Go multiplatform compiler\n* [n4jm4/raspberry-pi-os](https://hub.docker.com/r/n4jm4/raspberry-pi-os) - a Docker base image for Raspberry Pi OS\n* [msitools](https://gitlab.gnome.org/GNOME/msitools) - a Linux framework for generating Windows MSI packages\n* [tree](https://en.wikipedia.org/wiki/Tree_(command)) - recursive directory browser\n* [UTM](https://mac.getutm.app/) - a macOS emulator with support for NetBSD and other operating systems\n* [xgo](https://github.com/techknowlogick/xgo) - an automated cGo multiplatform compiler\n\n🐧\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcandre%2Frockhopper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcandre%2Frockhopper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcandre%2Frockhopper/lists"}