-
v0.5.0-rc.7
All checks were successfulDocumentation / Build and Deploy Documentation (push) Successful in 38sRelease Docker Image / define-variables (push) Successful in 2sChecks / Rust / Format (push) Successful in 49sRelease Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 14m19sRelease Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 14m17sRelease Docker Image / merge (push) Successful in 10sChecks / Prefligit / prefligit (push) Successful in 10sChecks / Rust / Clippy (push) Successful in 3m14sChecks / Rust / Cargo Test (push) Successful in 3m44sreleased this
2025-07-25 14:51:23 +00:00 | 63 commits to main since this releaseContinuwuity 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
andstd::RwLock
withparking_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 thelatest
tag. We're also now mirroring to GitLab atregistry.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.
Update: We've got debs up now. You'll need to install
liburing2
for them to work, and they require Debian Bookworm or newerMatrix 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
-
Source code (ZIP)
12 downloads
-
Source code (TAR.GZ)
6 downloads
-
conduwuit-base-linux-amd64-gnu-release
72 downloads · 72 MiB
-
conduwuit-base-linux-arm64-gnu-release
35 downloads · 62 MiB
-
conduwuit-haswell-linux-amd64-gnu-release
62 downloads · 73 MiB
-
conduwuit_0.5.0~rc.7-1_amd64.deb
27 downloads · 17 MiB
-
conduwuit_0.5.0~rc.7-1_armel.deb
0 downloads · 15 MiB
-
continuwuity-v0.5.0-rc.7.tar.gz
14 downloads · 121 MiB
-
v0.5.0-rc.6
All checks were successfulDocumentation / Build and Deploy Documentation (push) Successful in 39sRelease Docker Image / define-variables (push) Successful in 5sRust Checks / Format (push) Successful in 1m9sRust Checks / Clippy (push) Successful in 5m15sRust Checks / Cargo Test (push) Successful in 5m28sRelease Docker Image / build-image (linux/amd64, linux-amd64) (push) Successful in 13m47sRelease Docker Image / build-image (linux/arm64, linux-arm64) (push) Successful in 22m37sRelease Docker Image / merge (push) Successful in 36sreleased this
2025-06-14 20:39:16 +00:00 | 240 commits to main since this releaseContinuwuity is a community-driven fork and continuation of the much-loved conduwuit Matrix homeserver, written entirely in Rust. Today we're releasing
v0.5.0-rc.6
!We've made knock-restricted rooms work more smoothly, added automatic support contact configuration to help users reach admins when needed, and introduced a welcoming HTML landing page. Behind the scenes, we've improved our infrastructure with comprehensive testing, security policies, and continued updating our documentation.
We've got more in the pipeline! It's been awesome watching the community come together, and I can't wait to see what's next! -- @Jade
Changelog
Features
- Automatically set well-known support contacts #833 (@Jade)
- If no contact is set, server automatically configures Matrix support contacts based on admin users
- Includes warning when admin users will be exposed as support contacts
- Improved knock_restricted room handling #832 (@Jade)
- Fixed joining knock_restricted rooms via invite
- Automatically join rooms when meeting restrictions instead of knocking
- HTML default page #801 (@Jade)
- Added a friendly HTML landing page for the server
- Support for using the CONTINUWUITY_ environment variable prefix #819 (@Jade)
- Allow controlling client message filtering #796 (@Jade)
- Separate federation and client filtering controls
- Option to disable filtering of messages from ignored users
- Prefill server name in federation tester link (@Jade)
- Allow mentioning @room in admin announcements #850 (@Jade)
Bugfixes
- Do not panic on invalid membership event content #803 (@Jade)
- Prevents server crashes from malformed membership events
- Don't serialize x-key before storing it #800 (@nex, dasha)
- Fixes an error related to e2ee
- Fix federated leaves dropping the reason #789 (@nex)
- Fix incorrect command descriptions (@Jade)
- Fix brand name in CLI version string (@Jade)
- Fix empty VERSION_EXTRA strings being processed incorrectly (@Jade)
- Fix join rule handling for Synapse (working around this bug) (@Jade, @nex)
Dependencies
- Bump ruwuma to 652cc48 #790 (@nex)
- Fixes deserialization issues with duplicate fields
- Upgraded various dependencies (@Jade)
Infrastructure & CI
- Element Web client at https://element.continuwuity.org #797 (@tcpipuk)
- Element Web mirror for Continuwuity users
- CI improvements for formatting, clippy, and testing #830 (@Jade)
- Docker build optimisations and caching improvements (@Jade)
- Added well-known Matrix support endpoint for continuwuity.org #791 (@nex)
Documentation
- Added comprehensive security policy #838 (@Jade)
- Updated community guidelines #795 (@tcpipuk)
- Improved Contributing.md #807 (@Kokomo)
- Repository badges for mirrors #831 (@Jade)
- Continued renaming from conduwuit to Continuwuity across documentation (@Jade, @n, @Kokomo)
Migration from Conduwuit
If you are currently running the original conduwuit, you can migrate your existing installation to Continuwuity. It's a completely drop-in replacement!
Installation
A Docker image is available at
forgejo.ellis.link/continuwuation/continuwuity:v0.5.0-rc.6
. You can always get the latest release with thelatest
tag.You can also find binaries and packages attached to this release.
Matrix Rooms
Join our Matrix room and space to chat with us about the project!
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
3 downloads
-
aarch64-linux-musl.deb
15 downloads · 16 MiB
-
static-aarch64-linux-musl
23 downloads · 65 MiB
-
static-x86_64-linux-musl
54 downloads · 75 MiB
-
static-x86_64-linux-musl-haswell-optimised
34 downloads · 76 MiB
-
x86_64-linux-musl-haswell-optimised.deb
29 downloads · 19 MiB
-
x86_64-linux-musl.deb
34 downloads · 19 MiB
- Automatically set well-known support contacts #833 (@Jade)
-
v0.5.0-rc.5
All checks were successfulRelease Docker Image / define-variables (push) Successful in 0sDocumentation / Build and Deploy Documentation (push) Successful in 28sRelease Docker Image / build-image (linux/amd64, linux-amd64) (push) Successful in 44m10sRelease Docker Image / build-image (linux/arm64, linux-arm64) (push) Successful in 19m31sRelease Docker Image / merge (push) Successful in 27sreleased this
2025-04-21 01:07:43 +00:00 | 328 commits to main since this releaseContinuwuity is a community-driven fork and continuation of the much-loved conduwuit Matrix homeserver, written entirely in Rust. When the original project was archived, a dedicated group of users, developers, and administrators came together, unwilling to let this lightweight homeserver fade away. Today marks the culmination of our initial efforts to breathe new life into the project.
- the Continuwuity team (@Jade, @nex, @tcpipuk, @Aranjedeath, @morguldir)
Changelog
Aside from a whole bunch of housekeeping work, here are the main changes since conduwuit
v0.5.0-rc4
:Features
- Federation allow list #774 (@Jade)
- You can now have homeservers that will only federate with explicitly allowed servers
- Support fi.mau.room_id, and fully qualified room_id in /createRoom #777
- Smaller docker images #767 (@Jade)
- Replace the update checker with a new enabled-by-default announcements channel #780 (@Jade)
- Performance improvements #773 (jevolk)
Bugfixes
- Do not panic when
sender_device
is None in /messages route #757 (@nex) - Fix space hierarchy pagination not respecting client-specified limit. #769 (@Aranjedeath)
Docs
- The continuwuity.org website is now up! (@tcpipuk)
- Fixed
rocksdb_compaction
help text being inverted #737 (Peter Gervai)
Migration from Conduwuit
If you are currently running the original conduwuit, you can migrate your existing installation to Continuwuity. It's a completely drop in replacement!
Installation
A Docker image is available at
forgejo.ellis.link/continuwuation/continuwuity:v0.5.0-rc.5
. You can always get the latest release with thelatest
tag.You can also find binaries and packages attached to this release.
Matrix Rooms
Join our Matrix room and space to chat with us about the project!
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
19 downloads
-
aarch64-linux-musl.deb
16 downloads · 16 MiB
-
static-aarch64-linux-musl
23 downloads · 64 MiB
-
static-x86_64-linux-musl
30 downloads · 75 MiB
-
static-x86_64-linux-musl-haswell-optimised
41 downloads · 76 MiB
-
x86_64-linux-musl-haswell-optimised.deb
16 downloads · 19 MiB
-
x86_64-linux-musl.deb
28 downloads · 18 MiB
- Federation allow list #774 (@Jade)
-
v0.5.0-rc4 Pre-release
released this
2025-04-09 03:38:54 +00:00 | 391 commits to main since this releaserecreated to resolve e2ee device verification regression, and because of yanked dependencies
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
aarch64-linux-musl-debug.deb
9 downloads · 63 MiB
-
aarch64-linux-musl.deb
12 downloads · 16 MiB
-
complement_oci_image.tar.gz
5 downloads · 217 MiB
-
oci-image-aarch64-linux-musl-debug.tar.gz
6 downloads · 230 MiB
-
oci-image-aarch64-linux-musl.tar.gz
5 downloads · 156 MiB
-
oci-image-x86_64-linux-musl-all-features-x86_64-haswell-optimised.tar.gz
5 downloads · 159 MiB
-
oci-image-x86_64-linux-musl-debug.tar.gz
7 downloads · 233 MiB
-
oci-image-x86_64-linux-musl.tar.gz
5 downloads · 158 MiB
-
static-aarch64-linux-musl
11 downloads · 64 MiB
-
static-aarch64-linux-musl-debug
12 downloads · 566 MiB
-
static-x86_64-linux-musl
18 downloads · 75 MiB
-
static-x86_64-linux-musl-debug
14 downloads · 566 MiB
-
static-x86_64-linux-musl-x86_64-haswell-optimised
22 downloads · 76 MiB
-
x86_64-linux-musl-debug.deb
9 downloads · 65 MiB
-
x86_64-linux-musl.deb
15 downloads · 18 MiB
-
Source code (ZIP)
-
v0.4.7-rc Pre-release
released this
2024-10-25 03:51:02 +00:00 | 1219 commits to main since this releaseDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
v0.4.6 Stable
released this
2024-09-01 16:44:24 +00:00 | 1280 commits to main since this releaseconduwuit
Caution
0.4.6, although the latest "stable" release, is very out of date! If you are upgrading, or starting up a new server, you should be using the latest tagged release: https://forgejo.ellis.link/continuwuation/continuwuity/releases.
If you encounter a problem with 0.4.6, you should upgrade to the latest RC first. There have been >1000 commits to continuwuity since conduwuit 0.4.6 was release, including swathes of fundamental changes, and heaps of bug fixes.Release 0.4.6
Hi everyone! conduwuit 0.4.6 has been released. This is a huge release with many different bug fixes, changes, features, improvements, etc. It definitely has been a while and we hope the wait has been worth it!
The biggest thing on everyone's mind is that authenticated media has been added and enabled by default. No user intervention is needed, however if you'd like to disable the legacy media endpoints set
allow_legacy_media
to false.Thanks to @morguldir, a LOT of sliding sync issues were fixed that make Element X a lot more enjoyable to use on conduwuit. This includes heroes support, timestamps, fixing a panic, properly resetting connections, supporting per-room account data, supporting read receipts extensions (MSC3960), and receiving room invites.
Lots and lots of admin commands were added/fixed pertaining to general moderation, media cleanup and deletion, debugging, server/build information, and many more. See your local
!admin --help
command and their subcommands as usual to explore what's been added as there's too many to list here.Some media issues that may have been caused by Conduit database media compatibility have been resolved. Compatibility symlinking was also disabled by default, and can be re-enabled if there is a desire to move back to Conduit.
The appservice ping endpoint and MSC3316 timestamped massaging were added, both primarily used by Mautrix appservices.
Thanks to @isosphere from many hours of debugging and their code, threads are no longer backwards. Additionally, the
"age"
unsigned field is no longer hardcoded to 1 which may be used by some clients.We have dropped the required aarch64 target architecture to Cortex-A73 / ARMv8-A as the previous one was too new which broke support for some slightly older aarch64 devices.
The Debian package may have failed to install on some older versions of Debian as it was using a flag only available on the latest Debian. This has been corrected.
The
last_seen_ip
field is now set on initial new device creation. This, alongsidelast_seen_ts
, still needs work on keeping it updated, but at least you have an initial IP address to see which is way better than nothing at all.We've fixed Element Web/Desktop and likely other clients missing "inline profiles" by always sending redundant memberships (
include_redundant_members
) as Synapse does this too, and most clients seem to require this knowledge to properly load all inline profiles.Some admin commands may look a bit different thanks to our new admin command log capture, which allows you to see the logs generated by an admin command ran. See our example config for configuring this behaviour if needed.
Lots of code under the hood has been refactored, improved, simplified, optimised, etc, and continues to be!
Some other small/misc things are:
- Presence status messages can now be set properly by clients
- The
forbidden_remote_server_names
config option was extended to support blocking outbound and inbound federation to said servers. - The
m.room.guest_access
event is now properly respected. - MSC4166 support was added which simply returns 404 on the
/_matrix/client/v3/voip/turnServer
endpoint if no TURN URIs were configured - The new user display name suffix is no longer forcibly applied to appservice user registrations (some did consider this a feature but it was a bug. If you think you want this still, let me know and I'd be happy to make it a config option)
- The old room alias is now properly removed on room upgrades
- When banning a room, any local room aliases are deleted and the room is unpublished from the room directory
- Removed 2 redundant CSP directives that were already inherited by
default-src
axum-dual-protocol
(HTTP/HTTPS listening when using TLS mode, no rev proxy) is no longer feature-gated for simplicity- Various documentation improvements
And of course, the usual dependency updates/bumps have taken place, including RocksDB v9.5.2, bumping the Nix flake lockfile, and using latest Rust 1.80.1.
250 commits have been added since 0.4.5 (which we usually don't have this many each release!), so if you'd like to see the full set of changes that I may not have listed here see the commit history below.
Commit history: https://github.com/girlbossceo/conduwuit/compare/v0.4.5...v0.4.6
GitHub Releases | Docker Hub | NixOS
Liberapay | GitHub Sponsors | Ko-fi
Chat with us in #conduwuit:puppygock.gay
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
7 downloads
-
aarch64-unknown-linux-musl-debug.deb
42 downloads · 37 MiB
-
aarch64-unknown-linux-musl.deb
206 downloads · 12 MiB
-
oci-image-aarch64-unknown-linux-musl-debug.tar.gz
23 downloads · 367 MiB
-
oci-image-aarch64-unknown-linux-musl.tar.gz
23 downloads · 247 MiB
-
oci-image-x86_64-unknown-linux-musl-debug.tar.gz
15 downloads · 174 MiB
-
oci-image-x86_64-unknown-linux-musl.tar.gz
53 downloads · 53 MiB
-
static-aarch64-unknown-linux-musl
119 downloads · 49 MiB
-
static-aarch64-unknown-linux-musl-debug
26 downloads · 264 MiB
-
static-x86_64-unknown-linux-musl
566 downloads · 56 MiB
-
static-x86_64-unknown-linux-musl-debug
29 downloads · 258 MiB
-
x86_64-unknown-linux-musl-debug.deb
49 downloads · 36 MiB
-
x86_64-unknown-linux-musl.deb
432 downloads · 14 MiB
-
released this
2024-08-30 16:23:42 +00:00 | 1308 commits to main since this releaseDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
v0.4.5-rc Pre-release
released this
2024-07-16 04:44:47 +00:00 | 1529 commits to main since this releaseDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
v0.4.5 Stable
released this
2024-07-16 04:44:47 +00:00 | 1529 commits to main since this releaseconduwuit
Release 0.4.5
Hi everyone! conduwuit 0.4.5 has been released. This is primarily a bug fix release with some misc improvements.
- Some edge-case federation issues were found only with servers that use SRV records for delegation, this regression has been fixed and it's recommended to update to 0.4.5.
- A potential race condition on membership updates (e.g. joins, leaves, invites, etc) was fixed
- Potential unclean shutdown issues that were in the form of panics during high-load activity was fixed
- When using outgoing presence, empty presence EDUs were identified to be erroneously sending to other servers. This release fixes this, and has been found to improve the performance of outgoing presence overall.
- For the console feature, a command tab completion feature was implemented
- If conduwuit encounters a runtime panic, it can now fully catch and recover the panic, improving the reliability of conduwuit
- Access control checks were added for room directory publishing
- Static binaries and OCI images are now built with
--all-features
, which noticeably gains the console feature for everyone to use without building conduwuit - Static binaries and OCI images are also now built with CPU optimisations, which will help improve performance overall. aarch64 binaries are optimised for ARM cortex-a55 (minimum requires ARMv8.2-a). x86_64 binaries are built for
x86-64-v2
(minimum requires SSE 4.2). - RocksDB was updated to v9.4.0
- For NixOS users, the empty version string regressed in v0.4.4 and was fixed
- Misc logging improvements
- Various code cleanup, refactors, improvements, etc which may result in improved performance
- A force join room admin command was added
- A make server admin command was added to make the specified local user an admin of your server
Commit history: https://github.com/girlbossceo/conduwuit/compare/v0.4.4...v0.4.5
GitHub Releases | Docker Hub | NixOS
Liberapay | GitHub Sponsors | Ko-fi
Chat with us in #conduwuit:puppygock.gay
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
aarch64-unknown-linux-musl.deb
38 downloads · 12 MiB
-
oci-image-aarch64-unknown-linux-musl.tar.gz
15 downloads · 21 MiB
-
oci-image-x86_64-unknown-linux-musl.tar.gz
15 downloads · 22 MiB
-
static-aarch64-unknown-linux-musl
42 downloads · 46 MiB
-
static-x86_64-unknown-linux-musl
91 downloads · 52 MiB
-
x86_64-unknown-linux-musl.deb
91 downloads · 13 MiB
-
v0.4.4 Stable
released this
2024-07-04 22:15:54 +00:00 | 1672 commits to main since this releaseconduwuit
Release 0.4.4
Hi everyone! conduwuit 0.4.4 has been released. This release introduced significant code cleanups, misc bug fixes, major performance optimisations tailored to database-functions, the deletion of the SQLite backend, Room Summary API support (MSC3266), OpenID routes to make Element Integration Manager work, and the SHA256 media feature integrated in a forwards-compatible way.
A breaking change that shouldn't affect anyone is that SQLite support was fully removed from conduwuit. This was done due to SQLite being used incorrectly as an extremely inefficient and slow key-value store with no proper schema, SQLite in general not being very suitable for a Matrix homeserver, the rusqlite library was holding back some necessary future database refactoring and improvements, and being a burden to maintain for something that almost no one uses. Because the SQLite usage was little to none, no automatic migration path was provided, but conduit_toolbox provides a SQLite -> RocksDB migration tool if you are impacted. RocksDB is the only supported database backend for conduwuit, and as always we intend on closing the feature gap that SQLite may have provided over RocksDB as much as possible.
Removal of SQLite along with some feature refactoring now makes the
--all-features
Rust build flag work for conduwuit.A long-standing edge-case database bug was fixed that had the small possibility of causing mild jank upon room joins for the specific room being joined. The chances of this happening were low, but it was more likely on high-load servers and/or very fast servers. It's recommended to update to v0.4.4 to prevent the possibility of this issue happening.
More significant code cleanups, simplifications/minifications, refactoring, etc were done that also significantly improved database performance and performance on some hot code paths. Ping times have been found to be even better than before. Memory usage may also be improved from this.
MSC3266 support aka "Room Summary API" was added, just lacking federation bits at the moment but is functional for most uses of it. The OpenID routes were also added which is primarily used to make Element's "Integration Manager" functional.
The long-time optional
sha256_media
conduwuit feature has been fully integrated into conduwuit in a Conduit database forwards-compatible way through filesystem symlinks and startup media scans/checks. This prevents the upstream media bug on filesystems that don't allow long file names in the form of "File name too long (os error)
" due to upstream using base64 for file names while still retaining upstream database compatibility. Users who used this optional feature are transparently migrated to the same database version as everyone else.If you do not ever intend on moving back to Conduit, you can disable the 2 config options that retain database compatibility to speed up startup times and reduce media directory clutter:
media_compat_file_link
andmedia_statup_check
in the example config.Miscellaneous bugs were fixed related to spaces/hierarchy, redactions, restricted room joins, preventing infinite well-known caching, etc. And the usual dependencies were updated, including RocksDB to v9.3.1 from v9.2.1.
Commit history: https://github.com/girlbossceo/conduwuit/compare/v0.4.3...v0.4.4
GitHub Releases | Docker Hub | NixOS
Liberapay | GitHub Sponsors | Ko-fi
Chat with us in #conduwuit:puppygock.gay
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
aarch64-unknown-linux-musl.deb
16 downloads · 11 MiB
-
oci-image-aarch64-unknown-linux-musl.tar.gz
7 downloads · 20 MiB
-
oci-image-x86_64-unknown-linux-musl.tar.gz
12 downloads · 21 MiB
-
static-aarch64-unknown-linux-musl
35 downloads · 44 MiB
-
static-x86_64-unknown-linux-musl
42 downloads · 50 MiB
-
x86_64-unknown-linux-musl.deb
31 downloads · 12 MiB
-
Source code (ZIP)