Releases
The current relay release is 1.1.0. Release notes are on the GitHub release, and the downloads page lists every file with its size and checksum.
Versions
Section titled “Versions”- Versions follow
MAJOR.MINOR.PATCH. The version is the one in the relay’sCargo.toml. - Each release is tagged
vX.Y.Zin rchat-core, with a GitHub release that carries every binary, its.sha256file andSHA256SUMS.txt. - 1.1.0 speaks protocol version 2 only. The next release, 2.0.0, speaks protocol version 3 only (post-quantum encryption, blinded pairing, steady traffic, relay invites, TLS resumption, per-relay decoy sites). The relay and the app must run the same protocol version: older apps are refused with “client too old; update rChat”. Update both together.
Where the files are
Section titled “Where the files are”| URL | Contents |
|---|---|
https://assets.r-chat.net/VERSION | The current version number. install.sh reads it unless you pass --version. It changes only after every file of a release is uploaded. |
https://assets.r-chat.net/install.sh | The installer. |
https://assets.r-chat.net/<version>/<file> | The binaries, one <file>.sha256 per binary, and SHA256SUMS.txt. |
https://assets.r-chat.net/<version>/rchat-server.service | The systemd unit install.sh installs on Linux. |
https://assets.r-chat.net/<version>/rchat.rc | The rc script install.sh installs on FreeBSD. |
Binaries
Section titled “Binaries”Binaries are named rchat-server-<arch>-<os>, with -gnu or -static for the two Linux builds:
| File | Platform |
|---|---|
rchat-server-x86_64-linux-static | Linux x86_64, statically linked (musl). Runs on any distribution. |
rchat-server-aarch64-linux-static | Linux ARM64, statically linked (musl). |
rchat-server-x86_64-linux-gnu | Linux x86_64, needs glibc. |
rchat-server-aarch64-linux-gnu | Linux ARM64, needs glibc. |
rchat-server-armv7-linux | Linux ARMv7 (hard float), needs glibc. |
rchat-server-riscv64gc-linux-gnu | Linux RISC-V 64, needs glibc. |
rchat-server-x86_64-freebsd | FreeBSD x86_64. |
rchat-server-macos-arm64 | macOS, Apple silicon. |
rchat-server-macos-x86_64 | macOS, Intel. |
rchat-server-macos-universal | macOS, both (the one install.sh uses). |
A release can leave out a target that did not build; the downloads page shows exactly what was published.
Checksums
Section titled “Checksums”<file>.sha256holds the SHA-256 hash of<file>only, as 64 hex characters, with no file name.SHA256SUMS.txtlists the hash and name of every binary in the release, one per line, in the formatsha256sum -creads.
Verify a download
Section titled “Verify a download”On Linux, with rchat-server-x86_64-linux-static as an example file (use the name of the file you downloaded):
curl -LO https://assets.r-chat.net/1.1.0/rchat-server-x86_64-linux-staticcurl -LO https://assets.r-chat.net/1.1.0/rchat-server-x86_64-linux-static.sha256echo "$(cat rchat-server-x86_64-linux-static.sha256) rchat-server-x86_64-linux-static" | sha256sum -cOn macOS use shasum -a 256 rchat-server-macos-universal; on FreeBSD use sha256 -q rchat-server-x86_64-freebsd, and compare the result with the checksum file by eye.
install.sh does the same check itself and installs nothing if the hash does not match (exit code 3).
The macOS binaries are signed with a Developer ID certificate, using the hardened runtime and a secure timestamp, and notarised by Apple. A bare binary cannot have the notarisation ticket stapled to it, so the ticket is held by Apple rather than inside the file.
The release manifest
Section titled “The release manifest”The downloads page is generated from a release manifest written by the release build. For each release it records:
| Field | Meaning |
|---|---|
version | The release version, such as 1.1.0. |
date | The release date. |
notes_url | The GitHub release notes. |
base_url | https://assets.r-chat.net/<version>/. |
artifacts | One entry per binary: file, os, arch, variant (gnu, static or none), size in bytes and sha256. |
The website build fails if the manifest’s version differs from the relay’s Cargo.toml version, or if any file has no sha256. The upload script refuses to upload when the manifest does not match the files in dist/: the same version, the same set of files and each sha256 equal to the file’s real hash.
Build from source
Section titled “Build from source”The relay and the shared client library are open source under AGPL-3.0-or-later in rchat-core:
git clone https://github.com/PDG-Global/rchat-core.gitcd rchat-core/rchatcargo build --release --locked --bin rchat-serverTo build a tagged release, check out its tag first (git checkout v1.1.0). You need a Rust toolchain, a C toolchain and CMake; see Install.