Ghr, a GitHub Releases installer built with Zig and for Zig apps too

ghr - a GitHub Releases installer


This was my first real Zig project. I’ve been iterating on it for 3 months, so I learned a lot about Zig and its community. The project aims to help the community make their software installable. It also makes it easier to make forks installable as well as mirroring. I personally use it a lot when setting up new machines or containers.

I adopted the minisign signatures for verifying the binary author. Here is my GitHub Actions setup that installs the mirrored Zig binary.

      - name: Install Zig via ghr
        uses: cataggar/ghr/actions/install@v0.6.1
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tools: |
            cataggar/zig@v0.16.0 RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U

I’ve started a blog with some posts about ghr:

  • ghr — a toolkit for GitHub Releases
  • Installable WebAssembly Apps
  • installable WASI 0.3 Pet Store example

The project itself is: GitHub - cataggar/ghr: A toolkit for GitHub releases. · GitHub

I recently added support for WebAssembly apps. Those example WebAssembly apps are made with Zig and installable with ghr. I love seeing the WebAssembly enhancements land in Zig. The current blocker for using the native (non-LLVM) backend is:

  • #35795 - wasm trap with native backend - ziglang/zig

Would appreciate some help getting that resolved in Codeberg.

Supported Zig versions

The project will follow Zig stable, currently 0.16.

AI / LLM usage disclosure

I use Copilot when coding. This project is reviewed, tested, and engineered iteratively.

2 Likes