OMG / SOFTWARE

SHOWCASE PROJECT / COMMUNICATIONS

Merovingian

A homeserver with boundaries.

A Matrix homeserver in modern C++26, built around process isolation, defensive configuration, and documented security boundaries.

Beta. For evaluation and testing, not production use.

PROJECT STATUSBeta
TECHNOLOGYC++26 · Meson · Matrix
LICENCEGPL-3.0-or-later ↗

01 / OVERVIEW

A homeserver with boundaries.

A homeserver handles federation, access tokens, and message metadata. It also processes the contents of rooms that are not end-to-end encrypted. That makes its trust boundaries important.

Merovingian approaches those responsibilities through separated processing, explicit configuration, and verification tooling. Its controls reduce risk; they do not prove memory safety or production readiness.

02 / PROJECT FOCUS

What the work involves.

01

Separated processing

Thumbnail decoding runs in a sandboxed child process. Federation uses worker processes with documented shared boundaries; some federation work and signing operations remain in the main process.

02

Defensive startup

Configuration validation and hardening checks reject unsafe or missing conditions. Read the platform documentation to understand the controls available for your deployment.

03

Operational visibility

Structured logging, configurable redaction, and durable security audit records help operators understand activity. Redaction settings do not guarantee that every possible log value is free of sensitive data.

03 / CURRENT STATE

Read the limits.

For evaluation and testing. Do not use it as a production homeserver.

  • The project is in beta. Production release gates remain open.
  • Process isolation has explicit limits. It does not isolate every federation operation.
  • C++ ownership checks and verification tools reduce risk without proving memory safety.
Read the current README

BUILD IN THE OPEN

One useful contribution
is a good place to start.

Read the project guidance and open issues before contributing. A focused bug report, documentation improvement, or test case can help. Check the repository’s security guidance before reporting a potential vulnerability.

Explore the repository