Langonrock
Getting started

Installation

Install the binary, or run from source with Bun.

The install script

curl -fsSL https://raw.githubusercontent.com/langonrock/langonrock/main/install.sh | sh

It detects the operating system and architecture, verifies the checksum, and drops the binary in ~/.local/bin. Two environment variables change what it does:

VariableEffect
LANGONROCK_VERSIONInstall this tag instead of the latest
LANGONROCK_BINInstall here instead of ~/.local/bin

The script covers darwin and linux on x64 and arm64. On Windows, download the .exe from the releases page.

While the repository is private

Anonymous download does not work. install.sh falls back to an authenticated gh release download, so install the GitHub CLI and run gh auth login first, or grab the asset from the releases page by hand.

Prefer the script over clicking a release asset

The published binaries carry an ad-hoc signature only. That is enough for the kernel to run them and not enough for Gatekeeper to accept one downloaded through a browser. install.sh and brew install bypass macOS quarantine, so they avoid the path where a working binary looks broken.

Apple Silicon does not warn about an unsigned binary, it refuses to run it. The kernel sends SIGKILL before any code executes, which surfaces as a program that produces no output and exits 137.

From source

langonrock needs Bun 1.3 or newer. There is no Node fallback for the store itself, because it uses Bun.file, Bun.Glob, Bun.YAML and zstd.

git clone https://github.com/langonrock/langonrock
cd langonrock
bun install
bun src/cli.ts --help

bun install pulls two runtime dependencies and the development toolchain. The bin entry points straight at src/cli.ts, so there is no build step before running it.

Building a binary

bun run build --target=bun-darwin-arm64

scripts/build.ts wraps bun build --compile. On darwin it also strips the signature Bun writes and re-signs ad-hoc, which is required rather than cosmetic: Bun 1.3.12 emits a truncated LC_CODE_SIGNATURE on macOS arm64, and the resulting file is dead on arrival without it.

Six targets are supported: linux-x64, linux-arm64, darwin-x64, darwin-arm64, windows-x64, windows-arm64. A binary runs about 60 MB, since the Bun runtime is embedded in it.

Where the store lives

Without --data, langonrock uses the platform data directory.

PlatformDirectory
Linux$XDG_DATA_HOME/langonrock, falling back to ~/.local/share/langonrock
macOS~/Library/Application Support/langonrock
Windows%LOCALAPPDATA%\langonrock

Precedence is --data, then $LANGONROCK_DATA, then the platform directory. An embedded connection string with no path means the same thing, so okf://?tenant=acme reads the default store.

Checking the install

langonrock --version
langonrock --help

Development

bun run lint
bun run format:check
bun run typecheck
bun test

Those four commands are exactly what CI runs, on Linux, macOS and Windows, with fail-fast disabled so one platform failing still reports the others. Commits go through commitlint with the conventional-commit config, and lint-staged runs ESLint and Prettier on staged files. Pushing a v* tag cross-compiles six binaries, checksums them, and publishes a release. The release job refuses to run when the tag disagrees with package.json, which is the cheapest guard against publishing a binary whose --version lies.

On this page