• v0.5.0-rc.7 00c7e220bb

    v0.5.0-rc.7
    All checks were successful
    Documentation / Build and Deploy Documentation (push) Successful in 38s
    Release Docker Image / define-variables (push) Successful in 2s
    Checks / Rust / Format (push) Successful in 49s
    Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 14m19s
    Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 14m17s
    Release Docker Image / merge (push) Successful in 10s
    Checks / Prefligit / prefligit (push) Successful in 10s
    Checks / Rust / Clippy (push) Successful in 3m14s
    Checks / Rust / Cargo Test (push) Successful in 3m44s
    Stable

    Jade released this 2025-07-25 14:51:23 +00:00 | 2 commits to main since this release

    Signed by Jade
    GPG key ID: 8705A2A3EBF77BD2

    Continuwuity is a community-driven Matrix homeserver written entirely in Rust. Today we're sharing over a month's worth of work with 177 commits, 35 pull requests and 11 contributors as v0.5.0-rc.7.

    Our main room also reached 300 members, and from our janky measurements, we discovered around 150 publicly federated deployments of Continuwuity. In addition, our GitHub mirror also recently surpassed 60 stars! We can’t thank everyone enough for the support ❤️

    Features

    Policy Server Features

    • Policy server following: Continuwuity now checks events against a room's policy server (if configured) to prevent spam reaching your timeline #857 (@nex)
    • Soft-fail redactions: Redactions for soft-failed events are now soft-failed - spam is much less likely to wipe out your timeline (@nex)

    User Management

    • User suspension system: New admin commands to suspend/unsuspend users #876 (@nex)
      • Suspended users cannot send events, create rooms, join rooms, or change profiles
      • Suspension metadata is recorded (@Jade)
      • Admin users cannot be suspended
      • Suspend new users on registration option
    • User reporting: Implementation of Matrix user reporting functionality #882 (@nex)
      • Report messages include intentional mentions
      • Suspended users are forbidden from sending reports
    • ReCaptcha registration flow: Implementation of ReCaptcha for user registration #900 (@nex)
      • Allows making open-registration servers slightly less risky and prone to bots

    Matrix Protocol Support

    • Room summary API: Stabilized support for MSC3266 (room summary API) #881 (@nex)
    • Space upgrades (MSC4168): Update Spaces on room upgrade, and vice versa #907 (@nex)
    • Redact on ban (MSC4293): Support for passing through redact_events #877 (@nex)
    • MSC4307: Improved validation #901 (@nex)
    • Advertise support for Matrix spec versions 1.8, 1.12, 1.13, and 1.14 #884 (@nex)

    Administration & Monitoring

    • Long admin command responses: Upload files for admin commands that are too long #902 (@nex)
    • Journald logging: Support for logging to systemd journal with tracing-journald #892 (@Jade)
    • State forcing: Allow overriding "most recent event" when forcing state download #853 (@nex)
    • Added /_continuwuity/ API paths #904 (@n)

    Configuration Options

    • Typing & Read Receipts: Options to disable local typing and read receipts #898 (@oddlid)
    • New configuration option for federation connection timeouts #909 (@rooot)

    Performance Improvements

    • parking_lot: Replaced all std::Mutex and std::RwLock with parking_lot equivalents #908 (@Jade)
      • Enables hardware lock elision for better performance, and deadlock detection

    Bugfixes

    • Fixed server-level room bans preventing federated leaves #886 (@nex)
    • Fixed handling of empty state events in room upgrades #907 (@nex)
    • Only load children of nested spaces when appropriate #870 (@Aranjedeath)
    • Fixed membership handling when room is disconnected #875 (@nex)
    • Always calculate state diff IDs in syncv3, reducing times when room state fails to be sent down sync #840 (@nex)
    • Additional soundness checks when creating PDUs #871 (@nex)
    • Fixed an off-by-one error in a check #873 (@jason)
    • Corrected project brand references (@Jade)

    Dependencies

    • Rust 1.87: Updated to Rust 1.87 with newer LLVM #860 (@Jade)
    • RocksDB: Upgrade from 9.11.1 to 10.4.2 #911 (@Jade)
    • Updated multiple dependencies to latest versions (@Jade)

    Documentation

    • Admin command documentation: Automatic generation of admin command documentation #892 (@Jade)

    • Better grammar in deployment and Debian package documentation (@Jade)

    • Updated Docker and generic deployment instructions (@Jade)

    • Updated and improved NixOS installation instructions (@Jade)

    • Code style guide: Added comprehensive code style guide #888 (@Jade)

    • Contributing guide: Updated contributing documentation #864 (@Jade)

    • TURN testing: Added section for testing TURN servers (@Jade)

    • Updated Arch Linux deployment documentation #856 (Kimiblock)

    • Use credentials to load configuration in systemd service #867 (Kimiblock)

    • Better logging and comments throughout the codebase (@Jade, @nex)

    Infrastructure & CI

    • Binary artefacts: CI now uploads binaries as build artefacts (@Jade)
    • Registry mirroring: Docker images are now mirrored to GitLab, with more registries to come #894 (@Jade)
    • Nix fixes: Updated toolchain, cleaned up unused assets, fix issues #885 (@Shuroii, @transgwender)
    • Conventional commits: Enforced conventional commit message format #868 (@Jade)
    • Repository validation checks, including typo detection and formatting (@Jade)
    • All features are now tested in CI and documentation builds (@Jade)
    • Fixed Docker tags not being in the expected format (@Jade)
    • Build fixes for Element Web (https://element.continuwuity.org) (@tcpipuk)
    • Fixes to documentation deployment (@Jade)

    Thanks to all our contributors:

    • @Jade - Project maintenance, performance improvements, build system, documentation, CI improvements
    • @nex - Policy server implementation, user management, Matrix protocol support and more
    • @rooot - Federation configuration improvements
    • @oddlid - Typing and read receipts configuration options
    • @Shuroii - Nix and RocksDB build system improvements
    • @n - API endpoint additions
    • @Aranjedeath - Space handling fixes
    • @tcpipuk - Element Web build fixes
    • @Kimiblock - Systemd and documentation improvements
    • @transgwender - Nix fixes
    • nyabinary - NixOS package

    If you are currently running the original conduwuit, you can migrate your existing installation to Continuwuity - just like the last two releases. It's a completely drop-in replacement!

    A Docker image is available at forgejo.ellis.link/continuwuation/continuwuity:v0.5.0-rc.7. You can always get the latest release with the latest tag. We're also now mirroring to GitLab at registry.gitlab.com/continuwuity/continuwuity!

    You can also find binaries and packages attached to this release.

    Caution

    You'll notice that they're named differently from the last release - we've been having some issues getting static binaries built in time, so we've uploaded dynamic binaries in the meantime. You need to install liburing and have glibc available to run these binaries - we'll get static binaries (and .debs) up soon! When we do, we'll post in the announcements room.

    Matrix Rooms

    Join our Matrix room and space to chat with us about the project!

    If you run your own continuwuity server, you should also join the announcements room, as important announcements are sent there (and may not be mirrored to the main room).

    You can boost this post on the Fediverse
    or on Bluesky, and give us a star on GitHub!

    Downloads