Continuwuity, the official community driven continuation of conduwuit & Conduit, focusing on user experience and new features https://continuwuity.org
  • Rust 95.8%
  • Jinja 1.9%
  • Dockerfile 0.6%
  • CSS 0.5%
  • Shell 0.4%
  • Other 0.7%
Find a file
Morgan 7e979882bd
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m5s
Checks / Prek / Check changed files (pull_request) Successful in 6s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m23s
Update flake hashes / update-flake-hashes (pull_request) Successful in 1m26s
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been skipped
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 10s
ci: Compile arm64 natively on the ubuntu-arm64 runner
The arm64 build cross-compiled with the Rust target triple inside an
amd64 container and copied the binary out, deliberately avoiding Docker
emulation because arm64 emulation is unreliable on some BuildKit
instances.

A dedicated Ubuntu VM on an M4 Mac Mini is now available under the
ubuntu-arm64 label. Each matrix entry carries its own runner label and a
native flag, so builds can be moved between runners or between build
modes without changing the workflow structure.

Where native is set, the build-native action compiles on the host and
assembles the artefact tree, leaving Docker to package it. It builds
into a target directory outside the per-run workspace so cargo can reuse
artefacts between runs. The Dockerfile's ARTIFACTS argument selects
whether artefacts come from the builder stage or from out/ in the build
context; prepper and the final image are unchanged. Libraries are
resolved where the binary was linked, so arm64 images carry Ubuntu's
rather than Debian's.

Architecture flags are split into TARGET_MARCH, which feeds -march for
the C and C++ compilers, and TARGET_RUSTFLAGS, which is appended to
RUSTFLAGS. amd64 passes haswell to both as before; arm64 passes +crc,
which rustc does not enable by default. TARGET_CPU still drives the tag
and artefact suffix.
2026-08-20 15:58:34 +00:00
.cargo feat: Generate admin command documentation 2025-07-06 22:58:00 +01:00
.forgejo ci: Compile arm64 natively on the ubuntu-arm64 runner 2026-08-20 15:58:34 +00:00
.github chore: Update GitHub username in FUNDING.yml 2026-06-02 18:28:09 +00:00
.vscode feat: Improve admin command reference generation 2026-01-12 10:36:37 -05:00
bin feat(meta): Publish linkification script 2026-08-14 00:38:44 +01:00
changelog.d fix(admin): Complete MSC4323 suspend and lock endpoints 2026-08-20 00:58:30 +00:00
complement refactor: Remove support for guest user registration 2026-05-05 09:09:48 -04:00
docker ci: Compile arm64 natively on the ubuntu-arm64 runner 2026-08-20 15:58:34 +00:00
docs fix(docs): Correct docker network name in caddy labels compose 2026-08-18 09:06:28 +00:00
nix fix(nix): use correct toolchain for rustfmt 2026-07-22 23:53:35 +00:00
pkg docs: Describe Debian components 2026-04-17 20:13:44 +00:00
src fix: Update sender_retry_backoff_limit to match docs and actually be 1 week 2026-08-20 07:41:06 -07:00
tests fix(complement): Fix complement conflicting with first-run 2026-03-04 15:04:37 +00:00
theme docs: Add links to matrix guides 2026-02-14 19:29:07 +00:00
xtask chore(deps): update rust crate askama to 0.16.0 2026-05-03 14:40:44 +00:00
.dockerignore fix: Complement runner 2026-02-12 17:23:39 +00:00
.editorconfig chore: Update renovate config, limit cargo updates 2025-08-31 00:25:41 +01:00
.envrc fix: devshell on darwin 2026-04-08 20:14:36 +00:00
.git-blame-ignore-revs chore: Add commit to ignored revs 2025-06-21 18:03:38 +01:00
.gitattributes chore: fix end of files & trailing whitespace 2025-06-21 17:59:01 +01:00
.gitignore docs: New site 🎉 2025-11-22 20:35:09 +00:00
.mailmap chore: Update mailmap 2025-12-21 20:34:11 +00:00
.markdownlintignore add markdownlint and run lychee in documentation CI workflow 2024-07-03 11:30:16 -04:00
.pre-commit-config.yaml chore(deps): update pre-commit hook crate-ci/typos to v1.49.0 2026-08-05 13:04:52 +01:00
.typos.toml chore: Apply review comments 2026-02-16 02:35:40 +00:00
Cargo.lock chore(deps): update rust-non-major 2026-08-20 14:30:57 +00:00
Cargo.toml chore(deps): Remove unstable msc3061 feature 2026-08-20 15:30:01 +00:00
CHANGELOG.md style: Re-run linkifier on changelog 2026-08-14 00:22:27 +01:00
clippy.toml fix: Limit body read size of remote requests (CWE-409) 2026-03-03 19:54:34 +00:00
CODE_OF_CONDUCT.md fix: Link to community guidelines in CoC file 2026-05-09 16:53:03 -04:00
committed.toml feat: Advertise support for spec v1.8, 1.12, 1.13, and 1.14 2025-07-01 18:38:48 +01:00
conduwuit-example.toml fix: Update sender_retry_backoff_limit to match docs and actually be 1 week 2026-08-20 07:41:06 -07:00
CONTRIBUTING.md docs: Add back binstall with a link to the deps 2026-07-14 19:44:28 +02:00
default.nix
development.md fix: Repair symlink 2025-11-22 20:35:13 +00:00
engage.toml feat: Remove support for server-side blurhashing 2026-05-14 13:22:17 +00:00
flake.lock chore(deps): lock file maintenance 2026-07-13 13:44:47 +00:00
flake.nix fix: devshell on darwin 2026-04-08 20:14:36 +00:00
LICENSE style: Make main green again 2026-03-31 18:07:44 +01:00
package-lock.json chore(deps): update node-patch-updates to v2.0.19 2026-08-08 12:24:11 +00:00
package.json chore(deps): update dependency typescript to v7 2026-07-11 05:04:52 +00:00
README.md docs: Add information about partnered homeservers to the introduction page & update README.md 2026-02-21 18:51:56 -08:00
release.toml chore: Add correct configuration for cargo release 2026-01-12 16:20:38 +00:00
renovate.json ci: Attempt to delay major rust toolchain updates 2026-07-17 19:18:38 +01:00
rspress.config.ts docs: Add quick redirs to /dns, /livekit and /source(_code) 2026-08-16 12:45:02 +00:00
rust-toolchain.toml chore(deps): update rust to v1.97.1 2026-07-17 17:58:23 +00:00
rustfmt.toml bump nix lock, update to rust 2024 and 1.85.0 toolchain 2025-02-23 01:17:30 -05:00
SECURITY.md meta: Update expectations section and call out attribution 2026-07-21 14:19:42 +00:00
taplo.toml feat: add treefmt 2025-10-27 12:55:21 +00:00
towncrier.toml feat(meta): Set up towncrier 2025-12-28 00:53:44 +00:00
tsconfig.json docs: New site 🎉 2025-11-22 20:35:09 +00:00

continuwuity

A community-driven Matrix homeserver in Rust

Chat on Matrix Join the space

continuwuity is a Matrix homeserver written in Rust. It's the official community continuation of the conduwuit homeserver.

forgejo.ellis.link Stars Issues Pull Requests

GitHub Stars

GitLab Stars

Codeberg Stars

Why does this exist?

The original conduwuit project has been archived and is no longer maintained. Rather than letting this Rust-based Matrix homeserver disappear, a group of community contributors have forked the project to continue its development, fix outstanding issues, and add new features.

We aim to provide a stable, well-maintained alternative for current conduwuit users and welcome newcomers seeking a lightweight, efficient Matrix homeserver.

Who are we?

We are a group of Matrix enthusiasts, developers and system administrators who have used conduwuit and believe in its potential. Our team includes both previous contributors to the original project and new developers who want to help maintain and improve this important piece of Matrix infrastructure.

We operate as an open community project, welcoming contributions from anyone interested in improving continuwuity.

What is Matrix?

Matrix is an open, federated, and extensible network for decentralized communication. Users from any Matrix homeserver can chat with users from all other homeservers over federation. Matrix is designed to be extensible and built on top of. You can even use bridges such as Matrix Appservices to communicate with users outside of Matrix, like a community on Discord.

What are the project's goals?

Continuwuity aims to:

  • Maintain a stable, reliable Matrix homeserver implementation in Rust
  • Improve compatibility and specification compliance with the Matrix protocol
  • Fix bugs and performance issues from the original conduwuit
  • Add missing features needed by homeserver administrators
  • Provide comprehensive documentation and easy deployment options
  • Create a sustainable development model for long-term maintenance
  • Keep a lightweight, efficient codebase that can run on modest hardware

Can I try it out?

Check out the documentation for installation instructions.

If you want to try it out as a user, we have some partnered homeservers you can use:

  • You can head over to https://federated.nexus in your browser.

    • Hit the Apply to Join button. Once your request has been accepted, you will receive an email with your username and password.
    • Head over to https://app.federated.nexus and you can sign in there, or use any other matrix chat client you wish elsewhere.
    • Your username for matrix will be in the form of @username:federated.nexus, however you can simply use the username part to log in. Your password is your password.
  • There's also https://continuwuity.rocks/. You can register a new account using Cinny via this convenient link, or you can use Element or another matrix client that supports registration.

What are we working on?

We're working our way through all of the issues in the Forgejo project.

Can I migrate my data from x?

  • Conduwuit: Yes
  • Conduit: No, database is now incompatible
  • Grapevine: No, database is now incompatible
  • Dendrite: No
  • Synapse: No

We haven't written up a guide on migrating from incompatible homeservers yet. Reach out to us if you need to do this!

Contribution

Development flow

  • Features / changes must developed in a separate branch
  • For each change, create a descriptive PR
  • Your code will be reviewed by one or more of the continuwuity developers
  • The branch will be deployed live on multiple tester's matrix servers to shake out bugs
  • Once all testers and reviewers have agreed, the PR will be merged to the main branch
  • The main branch will have nightly builds deployed to users on the cutting edge
  • Every week or two, a new release is cut.

The main branch is always green!

Policy on pulling from other forks

We welcome contributions from other forks of conduwuit, subject to our review process. When incorporating code from other forks:

  • All external contributions must go through our standard PR process
  • Code must meet our quality standards and pass tests
  • Code changes will require testing on multiple test servers before merging
  • Attribution will be given to original authors and forks
  • We prioritize stability and compatibility when evaluating external contributions
  • Features that align with our project goals will be given priority consideration

Contact

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