Install and run
Download a prebuilt binary
Download the prebuilt archive for your system and architecture from GitHub Releases.
Each archive has a .sha256 checksum file in the release. Verify it with sha256sum -c <filename>.sha256 on Linux or shasum -a 256 -c <filename>.sha256 on macOS. On Windows, use Get-FileHash <archive-path> -Algorithm SHA256 and compare the result with the checksum file.
Extract the archive and add the directory containing cjr (cjr.exe on Windows) to PATH. On Linux / macOS, you can install it in your user command directory:
mkdir -p ~/.local/bin
install -m 755 cjr ~/.local/bin/cjr
Ensure ~/.local/bin is on PATH. On Windows, place cjr.exe in a permanent directory and add that directory to your user Path through Environment Variables. Open a new terminal and run:
cjr --version
# cjr 0.0.1
Windows binaries include the C/C++ runtime. The macOS binaries require macOS 13 or newer. The Linux binary is statically linked with musl; the Cangjie application and its runtime still have their own system requirements.
Install from source
Install Rust 1.89 or newer, a C compiler and CMake. Use the MSVC Rust toolchain on Windows.
cargo install --git https://github.com/Zxilly/cjr --tag v0.0.1 --locked
Ensure Cargo’s bin directory is on your PATH, then run:
cjr --version
To install from a local checkout:
git clone https://github.com/Zxilly/cjr.git
cd cjr
cargo install --path . --locked
Run a program
Linux / macOS:
cjr ./app --port 8080
Windows PowerShell:
cjr .\app.exe --port 8080
The first launch may download a full SDK archive. Only the runtime is extracted; later launches reuse it. cjr runs the original executable in place, preserves its contents and uses the current working directory, standard streams and application arguments.
Offline use
Run the program once while online, then use:
cjr --offline ./app
Offline mode uses local content exclusively. Existing runtime records, or local metadata with matching SDK content, must identify an official asset. Missing content produces an error.
Put --offline and -v before the executable path. Everything after that path belongs to the application.