Guardship
Ruby wrapper and release packaging for Mothership, the process supervisor with HTTP exposure.
Installation
RubyGems should resolve the matching platform gem automatically on supported targets:
gem install guardship
The generic guardship gem is a stub. Platform-specific releases carry the bundled native mothership binary.
What Is Included
- Stub gem:
- Ruby launcher only
- no bundled native binary
- Platform gems:
mothershipnative binary underlibexec/- default feature set only
Usage
mothership --config mothership.toml
If you install the stub gem directly on a platform without a matching packaged binary, the launcher will tell you that no bundled binary is present.
Supported Platforms
- Linux:
x86_64-linux,aarch64-linux - macOS:
x86_64-darwin,arm64-darwin
All packaged binaries are precompiled. No local Rust toolchain is required to run the gem.
Release Workflow
The release build produces one stub gem and one platform gem for each supported target. Run it from the repository root after the Rust crate and gem versions have been bumped together.
just build
cd gem
bundle exec rake gem:build
mise exec zig@0.14.1 -- bundle exec rake gem:build_platforms
gem:build_platforms builds these artifacts:
guardship-VERSION.gemguardship-VERSION-arm64-darwin.gemguardship-VERSION-x86_64-darwin.gemguardship-VERSION-aarch64-linux.gemguardship-VERSION-x86_64-linux.gem
Linux platform gems are built with cargo zigbuild through the configured Zig toolchain. The task uses glibc-versioned targets by default:
x86_64-unknown-linux-gnu.2.36aarch64-unknown-linux-gnu.2.36
The glibc floor can be changed for a release with GUARDSHIP_GLIBC_VERSION=2.xx. Do not use the plain *-unknown-linux-gnu Zig targets for the local all-platform release; Rama DNS links resolver symbols such as res_nquery that need the glibc-versioned target.
Publish after the artifacts are present:
bundle exec rake gem:push
# or
bundle exec rake gem:push_all
Documentation
License
MIT