• v0.5.0 1962e4cd6a

    Reed v0.5.0
    Some checks failed
    android / android (push) Successful in 30m30s
    assurance / proofs (push) Successful in 8m45s
    assurance / ct-bench (push) Successful in 2m34s
    assurance / voice-opus-crosscheck (push) Successful in 5m13s
    assurance / wasm-surface (push) Successful in 3m45s
    assurance / fuzz (push) Successful in 1h34m10s
    assurance / miri (push) Has been skipped
    assurance / kani (push) Has been skipped
    rust / rust (push) Successful in 45m34s
    site / site (push) Failing after 30m3s
    web / web (push) Successful in 43m17s
    release / toolchain-image (push) Has been skipped
    release / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been skipped
    release / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been skipped
    assurance / fuzz-mac (push) Has been cancelled
    reproducible / double-build (push) Failing after 35m43s
    reproducible / desktop-linux (push) Has been skipped
    release / build (push) Has been skipped
    devices / devices (push) Has been cancelled
    release / desktop-macos (push) Has been cancelled
    Stable

    admin_ekaii released this 2026-10-21 22:49:47 +00:00 | 9 commits to main since this release

    No known key found for this signature in database

    Reed 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.apk is the unsigned build it was signed from)
    • reed-v0.5.0-linux-x86_64.AppImage and reed-v0.5.0-linux-x86_64.deb
    • reed-relay and reed-cli static musl binaries for x86_64 and aarch64 Linux, with their cargo audit reports (audit-*.txt, no advisory found)
    • SBOMs in CycloneDX format (*.cdx.json)
    • reed-v0.5.0-vendored.tar.zst (vendored sources) and reed-v0.5.0-web-dist.tar.zst (web client build)
    • webcat-manifest.json and webcat-bundle.json (the WEBCAT manifest, logged to Sigsum, and its bundle)
    • the bootstrap pair reed-v0.5.0-bootstrap-authorities.json and reed-v0.5.0-bootstrap-consensus.bin (the signed consensus of 2026-10-21 15:00 UTC, 3 of 3 signatures, listing reed-public), with reed-v0.5.0-bootstrap-vectors.json
    • release.json, signing-cert-sha256.txt, reproduce-desktop-x86_64-unknown-linux-gnu.txt, SHA256SUMS and SHA256SUMS.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

    1. 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
      
    2. Check the downloaded files against it:

      sha256sum -c SHA256SUMS
      

      SHA256SUMS lists the SBOMs as sbom/<name>: put the downloaded .cdx.json files in an sbom/ folder first, or add --ignore-missing to check only what you downloaded.

    3. 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 in signing-cert-sha256.txt.

    4. 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-rc1 as a Debian revision, so it sorts above 0.5.0 and apt treats this release as a downgrade. Use sudo apt install --allow-downgrades ./reed-v0.5.0-linux-x86_64.deb or sudo 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
  • v0.5.0-rc1 a6e4d78cea

    Reed v0.5.0-rc1
    Some checks failed
    release / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-macos (push) Has been cancelled
    reproducible / double-build (push) Has been cancelled
    reproducible / desktop-linux (push) Has been cancelled
    release / toolchain-image (push) Has been cancelled
    release / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelled
    release / build (push) Has been cancelled
    Pre-release

    admin_ekaii released this 2026-10-18 01:53:29 +00:00 | 98 commits to main since this release

    Release 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.apk is the unsigned build it was signed from)
    • reed-v0.5.0-rc1-linux-x86_64.AppImage and reed-v0.5.0-rc1-linux-x86_64.deb
    • reed-relay and reed-cli static musl binaries for x86_64 and aarch64 Linux
    • SBOMs in CycloneDX format (*.cdx.json)
    • reed-v0.5.0-rc1-vendored.tar.zst (vendored sources) and reed-v0.5.0-rc1-web-dist.tar.zst (web client build)
    • webcat-manifest.json and webcat-bundle.json (the WEBCAT manifest, logged to Sigsum, and its bundle)
    • the bootstrap pair reed-v0.5.0-rc1-bootstrap-authorities.json and reed-v0.5.0-rc1-bootstrap-consensus.bin, with reed-v0.5.0-rc1-bootstrap-vectors.json
    • release.json, signing-cert-sha256.txt, SHA256SUMS and SHA256SUMS.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

    1. 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
      
    2. Check the downloaded files against it:

      sha256sum -c SHA256SUMS
      

      SHA256SUMS lists the SBOMs as sbom/<name>: put the downloaded .cdx.json files in an sbom/ folder first, or add --ignore-missing to check only what you downloaded.

    3. Android: the APK signer certificate SHA-256 must be 52c1d0ef5f1ca2ab8baa3c21fbf14240b9088d2a3e734b05b79e86b5f5ed5d2c (apksigner verify --print-certs reed-v0.5.0-rc1-universal.apk). It is also in signing-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, so 0.5.0-rc1 sorts above 0.5.0 and apt treats the final 0.5.0 as a downgrade (it asks, and refuses under -y). To install the final over this candidate, use sudo apt install --allow-downgrades ./reed-v0.5.0-linux-<arch>.deb or sudo 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
  • v0.4.1 904844623b

    Reed v0.4.1
    Some checks failed
    release / toolchain-image (push) Has been cancelled
    release / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-macos (push) Has been cancelled
    reproducible / double-build (push) Has been cancelled
    reproducible / desktop-linux (push) Has been cancelled
    release / build (push) Has been cancelled
    Stable

    admin_ekaii released this 2026-10-03 17:13:31 +00:00 | 1070 commits to main since this release

    Direct 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
  • v0.4.0 fdbb9db0bc

    Reed v0.4.0
    Some checks failed
    release / toolchain-image (push) Has been cancelled
    release / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-macos (push) Has been cancelled
    reproducible / double-build (push) Has been cancelled
    reproducible / desktop-linux (push) Has been cancelled
    release / build (push) Has been cancelled
    Stable

    admin_ekaii released this 2026-10-03 14:43:51 +00:00 | 1074 commits to main since this release

    Direct 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
  • v0.3.0 15208e7ad4

    Reed v0.3.0
    Some checks failed
    android / android (push) Has been cancelled
    assurance / proofs (push) Has been cancelled
    assurance / ct-bench (push) Has been cancelled
    assurance / voice-opus-crosscheck (push) Has been cancelled
    assurance / wasm-surface (push) Has been cancelled
    assurance / fuzz (push) Has been cancelled
    assurance / miri (push) Has been cancelled
    assurance / kani (push) Has been cancelled
    assurance / fuzz-24h (push) Has been cancelled
    rust / rust (push) Has been cancelled
    site / site (push) Has been cancelled
    web / web (push) Has been cancelled
    release / toolchain-image (push) Has been cancelled
    devices / devices (push) Has been cancelled
    release / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-macos (push) Has been cancelled
    reproducible / double-build (push) Has been cancelled
    reproducible / desktop-linux (push) Has been cancelled
    release / build (push) Has been cancelled
    Stable

    admin_ekaii released this 2026-09-30 15:38:14 +00:00 | 1127 commits to main since this release

    Direct 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
  • v0.3.0-rc2 da51b08ca1

    Reed v0.3.0-rc2
    Some checks failed
    reproducible / double-build (push) Has been cancelled
    release / toolchain-image (push) Has been cancelled
    release / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-macos (push) Has been cancelled
    reproducible / desktop-linux (push) Has been cancelled
    release / build (push) Has been cancelled
    Pre-release

    admin_ekaii released this 2026-09-30 08:38:44 +00:00 | 1131 commits to main since this release

    Direct 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
  • v0.3.0-rc1 b4f5b472d8

    Reed v0.3.0-rc1
    Some checks failed
    android / android (push) Has been cancelled
    assurance / proofs (push) Has been cancelled
    assurance / ct-bench (push) Has been cancelled
    assurance / voice-opus-crosscheck (push) Has been cancelled
    assurance / wasm-surface (push) Has been cancelled
    assurance / fuzz (push) Has been cancelled
    assurance / miri (push) Has been cancelled
    assurance / kani (push) Has been cancelled
    assurance / fuzz-24h (push) Has been cancelled
    site / site (push) Has been cancelled
    web / web (push) Has been cancelled
    release / toolchain-image (push) Has been cancelled
    release / desktop-linux (linux/amd64, x86_64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-linux (linux/arm64, aarch64-unknown-linux-gnu) (push) Has been cancelled
    release / desktop-macos (push) Has been cancelled
    release / build (push) Has been cancelled
    rust / rust (push) Has been cancelled
    reproducible / double-build (push) Has been cancelled
    reproducible / desktop-linux (push) Has been cancelled
    devices / devices (push) Has been cancelled
    Pre-release

    admin_ekaii released this 2026-09-29 23:16:37 +00:00 | 1132 commits to main since this release

    Direct 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
  • v0.2.0-rc2 dd5a0278e4

    Reed v0.2.0-rc2 Pre-release

    admin_ekaii released this 2026-09-10 23:06:54 +00:00 | 1196 commits to main since this release

    Reed 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.json
    
    Downloads
  • v0.2.0-rc1 cc6527cd44

    admin_ekaii released this 2026-09-08 06:54:23 +00:00 | 1218 commits to main since this release

    Reed 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.json
    
    Downloads