Skip to content

0.5.1

Choose a tag to compare

@prom3theu5 prom3theu5 released this 28 Aug 02:50
4604435

What's changed

Full changelog: 0.5.0...0.5.1


Highlights

Keryx 0.5.1 updates an open dashboard when draft activity occurs. You no longer need to reload the page after another client changes a draft.

  • A Server-Sent Events connection tells the browser when its dashboard snapshot may be stale.
  • The browser fetches server-rendered rows and draft details after each signal. Search, sorting, repository filters, availability counts, selection, and version history stay in sync without a page reload.
  • Realtime updates cover uploads, revisions, availability changes, wake-ups, prune, and purge.
  • Events carry only a revision. Draft data and HTML remain in the existing server-rendered snapshot path.
  • A reconnect receives the latest revision immediately, so the dashboard recovers changes that occurred while the connection was down.
  • Protected deployments use the same redacted rendering path for both the initial page and realtime snapshots.

Upgrade

Replace the binary and restart keryx serve. Version 0.5.1 adds no database migration and needs no new configuration.

Install

Binaries are attached below for three targets. If yours is not one of them, build from source. The release archives also include the README, licence, and ready-made Keryx agent skills.

Platform Asset
Linux, x86-64 (glibc 2.35+) keryx-0.5.1-x86_64-unknown-linux-gnu.tar.gz
macOS, Apple Silicon keryx-0.5.1-aarch64-apple-darwin.tar.gz
Windows, x86-64 keryx-0.5.1-x86_64-pc-windows-msvc.zip

Linux (x86-64)

gh release download 0.5.1 --repo SimCubeLtd/keryx \
  --pattern 'keryx-0.5.1-x86_64-unknown-linux-gnu.tar.gz*'

sha256sum -c keryx-0.5.1-x86_64-unknown-linux-gnu.tar.gz.sha256
tar -xzf keryx-0.5.1-x86_64-unknown-linux-gnu.tar.gz

sudo install -m755 keryx-0.5.1-x86_64-unknown-linux-gnu/bin/keryx /usr/local/bin/
keryx --version

For a single-user install with no sudo, use ~/.local/bin instead and make sure it is on your PATH.

macOS (Apple Silicon)

gh release download 0.5.1 --repo SimCubeLtd/keryx \
  --pattern 'keryx-0.5.1-aarch64-apple-darwin.tar.gz*'

shasum -a 256 -c keryx-0.5.1-aarch64-apple-darwin.tar.gz.sha256
tar -xzf keryx-0.5.1-aarch64-apple-darwin.tar.gz

sudo install -m755 keryx-0.5.1-aarch64-apple-darwin/bin/keryx /usr/local/bin/
keryx --version

The binary is not code-signed or notarised. Downloading through a browser can attach a quarantine flag and cause Gatekeeper to refuse it. Clear the flag once with:

xattr -d com.apple.quarantine /usr/local/bin/keryx

Intel Macs do not have a native binary. Build from source, or run the Apple Silicon build under Rosetta 2. Rosetta 2 is unsupported and untested for this release.

Windows (x86-64)

Run these commands in PowerShell:

gh release download 0.5.1 --repo SimCubeLtd/keryx `
  --pattern 'keryx-0.5.1-x86_64-pc-windows-msvc.zip*'

# Compare the archive against the published checksum.
Get-FileHash keryx-0.5.1-x86_64-pc-windows-msvc.zip -Algorithm SHA256
Get-Content keryx-0.5.1-x86_64-pc-windows-msvc.zip.sha256

Expand-Archive keryx-0.5.1-x86_64-pc-windows-msvc.zip -DestinationPath $env:LOCALAPPDATA\Programs

$dir = "$env:LOCALAPPDATA\Programs\keryx-0.5.1-x86_64-pc-windows-msvc\bin"
[Environment]::SetEnvironmentVariable(
  'Path', [Environment]::GetEnvironmentVariable('Path','User') + ";$dir", 'User')

Open a new terminal, then run keryx --version.

The executable is unsigned, so SmartScreen can warn on first run. The installation does not require administrator rights.

Build from source (any platform)

Install the pinned Rust nightly toolchain, then run:

rustup toolchain install nightly-2026-08-20 --profile minimal
git clone --branch 0.5.1 --depth 1 https://github.com/SimCubeLtd/keryx.git
cd keryx
cargo +nightly-2026-08-20 build --release --locked
./target/release/keryx --version

To install the tagged release into ~/.cargo/bin, run:

cargo +nightly-2026-08-20 install --git https://github.com/SimCubeLtd/keryx \
  --tag 0.5.1 --locked keryx

--locked uses the dependency versions in the committed Cargo.lock.