-
Reed v0.5.0
StableSome checks failedandroid / android (push) Successful in 30m30sassurance / proofs (push) Successful in 8m45sassurance / ct-bench (push) Successful in 2m34sassurance / voice-opus-crosscheck (push) Successful in 5m13sassurance / wasm-surface (push) Successful in 3m45sassurance / fuzz (push) Successful in 1h34m10sassurance / miri (push) Has been skippedassurance / kani (push) Has been skippedrust / rust (push) Successful in 45m34ssite / site (push) Failing after 30m3sweb / web (push) Successful in 43m17srelease / toolchain-image (push) Has been skippedrelease / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been skippedrelease / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been skippedassurance / fuzz-mac (push) Has been cancelledreproducible / double-build (push) Failing after 35m43sreproducible / desktop-linux (push) Has been skippedrelease / build (push) Has been skippeddevices / devices (push) Has been cancelledrelease / desktop-macos (push) Has been cancelledreleased this
2026-10-21 22:49:47 +00:00 | 9 commits to main since this releaseReed 0.5.0. The apps join the relay network that 0.5.0-rc1 brought to the relays: each app ships the three directory authorities' keys and a recent signed list of relays checked against them, so a fresh install knows where to go before it has reached any relay. reed-public, the original relay, stays the home of every account, so contacts still on 0.4 keep reaching you. Messages stay end-to-end encrypted: no relay and no authority can read them. Also in this release: a voice note goes only to the conversation you recorded it in (web and desktop), the desktop app does what the web app does (Start without a passphrase, voice notes and photos, the Requests screen), and a security update of rustls-webpki to 0.103.16 and webpki-roots to 1.0.10 (RUSTSEC-2026-0382, RUSTSEC-2026-0381). CHANGELOG.md in the tag has the full list. The hosted web app at app.reed.ekaii.fr runs this release.
Included
reed-v0.5.0-universal.apk: the signed universal Android APK (reed-v0.5.0-universal-unsigned.apkis the unsigned build it was signed from)reed-v0.5.0-linux-x86_64.AppImageandreed-v0.5.0-linux-x86_64.debreed-relayandreed-clistatic musl binaries for x86_64 and aarch64 Linux, with theircargo auditreports (audit-*.txt, no advisory found)- SBOMs in CycloneDX format (
*.cdx.json) reed-v0.5.0-vendored.tar.zst(vendored sources) andreed-v0.5.0-web-dist.tar.zst(web client build)webcat-manifest.jsonandwebcat-bundle.json(the WEBCAT manifest, logged to Sigsum, and its bundle)- the bootstrap pair
reed-v0.5.0-bootstrap-authorities.jsonandreed-v0.5.0-bootstrap-consensus.bin(the signed consensus of 2026-10-21 15:00 UTC, 3 of 3 signatures, listing reed-public), withreed-v0.5.0-bootstrap-vectors.json release.json,signing-cert-sha256.txt,reproduce-desktop-x86_64-unknown-linux-gnu.txt,SHA256SUMSandSHA256SUMS.sigstore.json
Not in this release
- No macOS DMG.
- No aarch64 Linux packages (no aarch64 AppImage or .deb). The relay and CLI binaries are available for aarch64.
Verify
-
Check the signature on SHA256SUMS with the cosign public key from the tag (
tools/release/keys/reed-release-cosign.pub):cosign verify-blob --key reed-release-cosign.pub --bundle SHA256SUMS.sigstore.json SHA256SUMS -
Check the downloaded files against it:
sha256sum -c SHA256SUMSSHA256SUMS lists the SBOMs as
sbom/<name>: put the downloaded.cdx.jsonfiles in ansbom/folder first, or add--ignore-missingto check only what you downloaded. -
Android: the APK signer certificate SHA-256 must be
52c1d0ef5f1ca2ab8baa3c21fbf14240b9088d2a3e734b05b79e86b5f5ed5d2c(apksigner verify --print-certs reed-v0.5.0-universal.apk), the same as every earlier release, so it installs over the previous version and keeps your data. It is also insigning-cert-sha256.txt. -
The tag is signed:
git -c gpg.ssh.allowedSignersFile=tools/release/keys/allowed_signers verify-tag v0.5.0.
Upgrading from the 0.5.0-rc1 Linux .deb
dpkg reads the hyphen in
0.5.0-rc1as a Debian revision, so it sorts above0.5.0and apt treats this release as a downgrade. Usesudo apt install --allow-downgrades ./reed-v0.5.0-linux-x86_64.deborsudo dpkg -i ./reed-v0.5.0-linux-x86_64.deb.Relay image: forgejo.ekaii.fr/exo/reed-relay@sha256:ad21da3b88e494985e5660bda61c22a033b620a31a074579698fbc9fee76b18d, cosign-signed with the release key (verify: cosign verify --key reed-release-cosign.pub forgejo.ekaii.fr/exo/reed-relay@sha256:ad21da3b88e494985e5660bda61c22a033b620a31a074579698fbc9fee76b18d). It runs on the three directory authorities and on reed-public since 2026-10-22.
Reproducibility: the Mac did not reproduce this release. The build host built every artefact twice, from two copies at two paths, and the two builds were identical (the APK, the web dist and the core files: 28 of 28; the x86_64 AppImage and .deb by content). As the independent check, F-Droid's own build environment (the fdroidserver buildserver-trixie image running fdroiddata's CI steps) rebuilt the APK from the tag on 2026-10-22 at 01:59 UTC, and the result equals the published reed-v0.5.0-universal.apk apart from the signature (apksigcopier compare). That rebuild ran on the same build host, but with a different toolchain and environment. The F-Droid recipe in the tag lists one scandelete path that the v0.5.0 tree no longer needs (fdroidserver refuses it); the rebuild used the recipe with that one line removed, as main now has it.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Reed v0.5.0-rc1
Pre-releaseSome checks failedrelease / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-macos (push) Has been cancelledreproducible / double-build (push) Has been cancelledreproducible / desktop-linux (push) Has been cancelledrelease / toolchain-image (push) Has been cancelledrelease / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelledrelease / build (push) Has been cancelledreleased this
2026-10-18 01:53:29 +00:00 | 98 commits to main since this releaseRelease candidate of Reed 0.5.0 (pre-release). Relays now form a network instead of a single server: three directory authorities vote every hour on which relays are up and publish one signed consensus, which a device accepts only when a majority of the authorities it ships with signed it. Relays join with an admission token, your queues can live on several relays, and version 0.4 apps keep reaching the original relay as before. As CHANGELOG.md says, this is a release candidate of the relay only: the apps move to 0.5.0 with the authorities' bootstrap snapshot once the authorities are live, and the bootstrap snapshot attached here lists no relays yet. The APK, AppImage and .deb in this pre-release are built from the same tag for testing, while the hosted web app is not updated by this pre-release and stays on 0.4.1. CHANGELOG.md in the tag has the full list, including the security fixes from the federation review.
Included
reed-v0.5.0-rc1-universal.apk: the signed universal Android APK (reed-v0.5.0-rc1-universal-unsigned.apkis the unsigned build it was signed from)reed-v0.5.0-rc1-linux-x86_64.AppImageandreed-v0.5.0-rc1-linux-x86_64.debreed-relayandreed-clistatic musl binaries for x86_64 and aarch64 Linux- SBOMs in CycloneDX format (
*.cdx.json) reed-v0.5.0-rc1-vendored.tar.zst(vendored sources) andreed-v0.5.0-rc1-web-dist.tar.zst(web client build)webcat-manifest.jsonandwebcat-bundle.json(the WEBCAT manifest, logged to Sigsum, and its bundle)- the bootstrap pair
reed-v0.5.0-rc1-bootstrap-authorities.jsonandreed-v0.5.0-rc1-bootstrap-consensus.bin, withreed-v0.5.0-rc1-bootstrap-vectors.json release.json,signing-cert-sha256.txt,SHA256SUMSandSHA256SUMS.sigstore.json
Not in this pre-release
- No macOS DMG.
- No aarch64 Linux packages (no aarch64 AppImage or .deb). The relay and CLI binaries are available for aarch64.
Verify
-
Check the signature on SHA256SUMS with the cosign public key from the tag (
tools/release/keys/reed-release-cosign.pub):cosign verify-blob --key reed-release-cosign.pub --bundle SHA256SUMS.sigstore.json SHA256SUMS -
Check the downloaded files against it:
sha256sum -c SHA256SUMSSHA256SUMS lists the SBOMs as
sbom/<name>: put the downloaded.cdx.jsonfiles in ansbom/folder first, or add--ignore-missingto check only what you downloaded. -
Android: the APK signer certificate SHA-256 must be
52c1d0ef5f1ca2ab8baa3c21fbf14240b9088d2a3e734b05b79e86b5f5ed5d2c(apksigner verify --print-certs reed-v0.5.0-rc1-universal.apk). It is also insigning-cert-sha256.txt.
Linux .deb and the final 0.5.0
The package version is
0.5.0-rc1. dpkg reads the hyphen as a Debian revision, so0.5.0-rc1sorts above0.5.0and apt treats the final 0.5.0 as a downgrade (it asks, and refuses under-y). To install the final over this candidate, usesudo apt install --allow-downgrades ./reed-v0.5.0-linux-<arch>.deborsudo dpkg -i ./reed-v0.5.0-linux-<arch>.deb. Users who only install final releases are not affected.Relay image: forgejo.ekaii.fr/exo/reed-relay@sha256:7c788350e30d35973ff9222585678ca8d9d0134336527a96ed6be654a12633c7, cosign-signed with the release key (verify: cosign verify --key reed-release-cosign.pub forgejo.ekaii.fr/exo/reed-relay@sha256:7c788350e30d35973ff9222585678ca8d9d0134336527a96ed6be654a12633c7).
Reproducibility: the Mac did not reproduce this candidate. The build host built every artefact twice, from two copies at two paths, and the two builds were identical (the APK, the web dist and the core files: 28 of 28; the x86_64 AppImage and .deb by content). As the independent check, F-Droid's own build environment (the fdroidserver buildserver-trixie image running fdroiddata's CI steps) rebuilt the APK from the tag on 2026-10-18 at 12:15 UTC, and the result equals the published reed-v0.5.0-rc1-universal.apk apart from the signature (apksigcopier compare, and fdroid's own comparison against this release's APK). That rebuild ran on the same build host, but with a different toolchain and environment.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
6 downloads
-
Reed v0.4.1
StableSome checks failedrelease / toolchain-image (push) Has been cancelledrelease / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-macos (push) Has been cancelledreproducible / double-build (push) Has been cancelledreproducible / desktop-linux (push) Has been cancelledrelease / build (push) Has been cancelledreleased this
2026-10-03 17:13:31 +00:00 | 1070 commits to main since this releaseDirect distribution (docs/RELEASE.md): the signed universal APK, the macOS DMG (ad-hoc signed), the Linux AppImage and .deb for x86_64 and aarch64. SHA256SUMS is signed (SHA256SUMS.sigstore.json); verify with the published cosign key.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
6 downloads
-
Source code (ZIP)
-
Reed v0.4.0
StableSome checks failedrelease / toolchain-image (push) Has been cancelledrelease / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-macos (push) Has been cancelledreproducible / double-build (push) Has been cancelledreproducible / desktop-linux (push) Has been cancelledrelease / build (push) Has been cancelledreleased this
2026-10-03 14:43:51 +00:00 | 1074 commits to main since this releaseDirect distribution (docs/RELEASE.md): the signed universal APK, the macOS DMG (ad-hoc signed), the Linux AppImage and .deb for x86_64 and aarch64. SHA256SUMS is signed (SHA256SUMS.sigstore.json); verify with the published cosign key.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
12 downloads
-
Source code (ZIP)
-
Reed v0.3.0
StableSome checks failedandroid / android (push) Has been cancelledassurance / proofs (push) Has been cancelledassurance / ct-bench (push) Has been cancelledassurance / voice-opus-crosscheck (push) Has been cancelledassurance / wasm-surface (push) Has been cancelledassurance / fuzz (push) Has been cancelledassurance / miri (push) Has been cancelledassurance / kani (push) Has been cancelledassurance / fuzz-24h (push) Has been cancelledrust / rust (push) Has been cancelledsite / site (push) Has been cancelledweb / web (push) Has been cancelledrelease / toolchain-image (push) Has been cancelleddevices / devices (push) Has been cancelledrelease / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-macos (push) Has been cancelledreproducible / double-build (push) Has been cancelledreproducible / desktop-linux (push) Has been cancelledrelease / build (push) Has been cancelledreleased this
2026-09-30 15:38:14 +00:00 | 1127 commits to main since this releaseDirect distribution (docs/RELEASE.md): the signed universal APK, the macOS DMG (ad-hoc signed), the Linux AppImage and .deb for x86_64 and aarch64. SHA256SUMS is signed (SHA256SUMS.sigstore.json); verify with the published cosign key.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
8 downloads
-
Source code (ZIP)
-
Reed v0.3.0-rc2
Pre-releaseSome checks failedreproducible / double-build (push) Has been cancelledrelease / toolchain-image (push) Has been cancelledrelease / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-macos (push) Has been cancelledreproducible / desktop-linux (push) Has been cancelledrelease / build (push) Has been cancelledreleased this
2026-09-30 08:38:44 +00:00 | 1131 commits to main since this releaseDirect distribution (docs/RELEASE.md): the signed universal APK, the macOS DMG (ad-hoc signed), the Linux AppImage and .deb for x86_64 and aarch64. SHA256SUMS is signed (SHA256SUMS.sigstore.json); verify with the published cosign key.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
Reed v0.3.0-rc1
Pre-releaseSome checks failedandroid / android (push) Has been cancelledassurance / proofs (push) Has been cancelledassurance / ct-bench (push) Has been cancelledassurance / voice-opus-crosscheck (push) Has been cancelledassurance / wasm-surface (push) Has been cancelledassurance / fuzz (push) Has been cancelledassurance / miri (push) Has been cancelledassurance / kani (push) Has been cancelledassurance / fuzz-24h (push) Has been cancelledsite / site (push) Has been cancelledweb / web (push) Has been cancelledrelease / toolchain-image (push) Has been cancelledrelease / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelledrelease / desktop-macos (push) Has been cancelledrelease / build (push) Has been cancelledrust / rust (push) Has been cancelledreproducible / double-build (push) Has been cancelledreproducible / desktop-linux (push) Has been cancelleddevices / devices (push) Has been cancelledreleased this
2026-09-29 23:16:37 +00:00 | 1132 commits to main since this releaseDirect distribution (docs/RELEASE.md): the signed universal APK, the macOS DMG (ad-hoc signed), the Linux AppImage and .deb for x86_64 and aarch64. SHA256SUMS is signed (SHA256SUMS.sigstore.json); verify with the published cosign key.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
Reed v0.2.0-rc2 Pre-release
released this
2026-09-10 23:06:54 +00:00 | 1196 commits to main since this releaseReed v0.2.0-rc2: M2 release candidate 2 (pre-release). The APK is signed with the Reed release key; every other artefact is the reproducible unsigned output.
Since rc1 (tag v0.2.0-rc1): the relay answers a spent registration window with the typed ALLOWED status 3 "rate limited" (ADR-53) with refusal counters and log lines, and the core retries; ContactView.waiting shows pending acceptances on the three shells; the real-device bench scripts run end to end; the Kani assurance is closed (21 harnesses SUCCESSFUL, tools/assurance/kani.sh exits 0; KNOWN-ISSUES A-8 and A-11 fixed); the link simulator's property oracle is exact; the gate's ios-generated step diffs the tracked Swift binding. Gate green on
3b0eb70(24 steps, ProVerif 7 models, cargo deny). Report: docs/REPORT-M2.md section 7.Artefacts: tools/release/reproduce.sh v0.2.0-rc2 --native on the tag, PASS, 25 artefacts identical across two independent builds. reed-v0.2.0-rc2-universal.apk is signed (v2 and v3) with the Reed release certificate, SHA-256 52c1d0ef5f1ca2ab8baa3c21fbf14240b9088d2a3e734b05b79e86b5f5ed5d2c (signing-cert-sha256.txt; build-status/m3/KEY-CEREMONY-2026-09-11.md). SHA256SUMS is signed with cosign: verify offline with tools/release/keys/reed-release-cosign.pub and SHA256SUMS.sigstore.json (docs/RELEASE.md 6). Installing the APK needs "install unknown apps" for your browser or file manager; no store listing exists (direct distribution, DECISIONS-M3 D1). iOS stays on the simulator (no Developer Program).
SHA256SUMS:
1eee790c831001edfab07b61ad932c354a7f945717af64a891c20d736215f588 libreed_ffi-arm64-v8a.so 750ad922d46ff227cddd656fd831a4a3cb9c04c50e3699193834b8dd34b69c0a libreed_ffi-armeabi-v7a.so 3f4471235d01bb9044a4e2c0f62c24e3835fd1a77fcd800bce0171fbd27b214c reed-v0.2.0-rc2-universal-unsigned.apk 5fcd8aa65ec79e05fe58b6c8b0f7ef9cb36d6a52e8ebd0f2ab0313578439ef05 reed-v0.2.0-rc2-universal.apk 7f5dae90a5878f8788ac135138e87c8d5573ac1edd1fa55b08bc1a903b59800f reed-v0.2.0-rc2-vendored.tar.zst a73a85d30bef1cc58741cfb04a3fbe95cf008381b69435fc50d98a55cacdab25 reed-v0.2.0-rc2-web-dist.tar.zst 89a629ebc9e6106529fe36f3e89d0be7d8cd0fb0fea5760621dd7655852c4d27 reed_wasm_bg.wasm afd15b98e76a5d78d33bdae61ef11854b38bc6d4213e29fcfd39ea4fde34c380 webcat-manifest.jsonDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
4 downloads
-
Source code (ZIP)
-
Reed v0.2.0-rc1 (M2 release candidate 1) Pre-release
released this
2026-09-08 06:54:23 +00:00 | 1218 commits to main since this releaseReed v0.2.0-rc1: M2 release candidate 1 (pre-release, unsigned).
What is in M2: Tor client and onion relay, LAN and BLE links, LoRa companions (Meshtastic and MeshCore firmware), groups, content-free push, iOS host, interop with Briar, SimpleX, Nostr, Chatmail, Meshtastic and MeshCore, release engineering and assurance. Report: docs/REPORT-M2.md (section 7 for the closing wave). Gate green on
ccf1e55; native double build PASS, 25 artefacts identical across two independent builds.The artefacts below are the reproducible outputs of tools/release/reproduce.sh v0.2.0-rc1 --native on the tag: the universal unsigned APK (install requires developer options; the signed store builds are an owner action), the web dist tarball, the wasm core, the two Android native libraries, the vendored Rust sources and the webcat manifest. Verify with the SHA256SUMS file; rebuild with tools/release/reproduce.sh to compare.
SHA256SUMS:
fedd8dbf2be2abf00ebf7b046781a47bbf9ef08acfd090f98a3a75e15b2458db libreed_ffi-arm64-v8a.so a787abba07b5a69defa8a838743ad9b1ab6d43877af9c8db29b6b5745020d2c4 libreed_ffi-armeabi-v7a.so 44c905c8ada4dd198bbd1066a5d37c52df3d83eeb39574cc9ebff2efd84a2e65 reed_wasm_bg.wasm f39546173ebedf073584070a84e9bb01ed2cf3095693562d95190a45087c0be1 reed-v0.2.0-rc1-universal-unsigned.apk fd72d1b6c9b2d30284011fda01a4e5dca761fa002812419fca15987de40448f2 reed-v0.2.0-rc1-vendored.tar.zst cd8a3b95e9604d1f0d68d486e41eeb2af508a753ea9e3055895bb43f9b4a3cdc reed-v0.2.0-rc1-web-dist.tar.zst 717a4c3703b7111f87f53e27e634ab6fb40a42be4ee15994abd2f2ec6d635d27 webcat-manifest.jsonDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
3 downloads
-
Source code (ZIP)