Building from source

Reemerge is a Rust project (edition 2024). You'll need a Rust toolchain - install one with rustup.

Plain cargo build

cargo build --release
# Binary at ./target/release/reemerge

Build scripts

The repository ships convenience scripts that produce a platform-named binary and install it locally.

bash build.sh
# Produces reemerge-macos-arm64 (or -macos-x64 / -linux-x64 / -linux-arm64)
# and installs it to ~/.local/bin/

Pass --no-install to build the binary without installing it - useful in CI:

bash build.sh --no-install

Releasing

Maintainers cut releases with release.sh from macOS. Reemerge is pure Rust with no native dependencies, so a single run cross-compiles every supported target and publishes them as one GitHub Release - there is no per-platform release loop:

  • macOS (arm64, x64) - native cargo build
  • Linux (x64, arm64) - cargo zigbuild, which uses the Zig linker to handle glibc versioning
  • Windows (x64, arm64) - cargo xwin build, which downloads the MSVC SDK and CRT automatically
bash release.sh
FlagDescription
--draftCreate the release as a draft (default: published).
--minorBump the month component instead of the patch version.
--forceRelease the current Cargo.toml version even if it is ahead of the tag.

Version numbers are date-based: YY.MM.PATCH.

The release toolchain needs a few one-time installs:

brew install zig
cargo install cargo-zigbuild cargo-xwin
rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu \
                  x86_64-pc-windows-msvc aarch64-pc-windows-msvc
gh auth login   # the gh CLI must be authenticated