A C++20 matrix server
Go to file
MTRNord 13ec20b4b6
Tests / Tests (push) Has been cancelled Details
Docker / docker (push) Has been cancelled Details
CodeQL / Analyze (c-cpp) (push) Has been cancelled Details
Tests / Complement (${{ matrix.label }}) (PostgreSQL, Postgres) (push) Has been cancelled Details
Add missing const and nodiscard keywords and update to c++23 and c17
2024-03-28 11:40:34 +01:00
.github Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
.kdev4 Add missing const and nodiscard keywords and update to c++23 and c17 2024-03-28 11:40:34 +01:00
.reuse prepare a flake and add reuse and a license. Flake is broken until we get meson 1.3.0 in nix 2023-11-25 18:33:19 +01:00
.tito Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
.vscode Add complement and tests to CI 2023-12-02 22:24:24 +01:00
LICENSES prepare a flake and add reuse and a license. Flake is broken until we get meson 1.3.0 in nix 2023-11-25 18:33:19 +01:00
benches Use set_post_routing_handler for cors header 2023-11-28 19:36:38 +01:00
complement Fix quoting 2023-12-05 14:32:12 +01:00
fuzz_targets Various changes 2024-01-31 18:25:53 +01:00
scripts Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
src Add missing const and nodiscard keywords and update to c++23 and c17 2024-03-28 11:40:34 +01:00
subprojects Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
tests Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
.clang-format Prepare testing 2023-11-08 22:53:35 +01:00
.clang-tidy Modernize clang-tidy, fix code and make it use cpp where it is possible instead of C code. 2023-11-30 12:15:44 +01:00
.clangd Various changes 2024-01-31 18:25:53 +01:00
.deepsource.toml .deepsource.toml hinzugefügt 2023-12-26 13:50:51 +00:00
.gitignore Update flake and add docker. Also allow disabling parts of the build 2023-12-04 11:49:21 +01:00
.lcovrc Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
LICENSE prepare a flake and add reuse and a license. Flake is broken until we get meson 1.3.0 in nix 2023-11-25 18:33:19 +01:00
README.md Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
config.example.yaml Add complement and tests to CI 2023-12-02 22:24:24 +01:00
default.nix prepare a flake and add reuse and a license. Flake is broken until we get meson 1.3.0 in nix 2023-11-25 18:33:19 +01:00
flake.lock Update flake and add docker. Also allow disabling parts of the build 2023-12-04 11:49:21 +01:00
flake.nix readd yaml wrap 2024-02-11 13:53:41 +01:00
gcovr.cfg Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
meson.build Add missing const and nodiscard keywords and update to c++23 and c17 2024-03-28 11:40:34 +01:00
meson.options try to fix flake 2024-02-11 13:35:52 +01:00
persephone.kdev4 Partially implement room joins and improve many parts of the code 2024-01-02 10:51:31 +01:00
persephone.spec Add missing description 2024-01-02 11:12:06 +01:00
shell.nix prepare a flake and add reuse and a license. Flake is broken until we get meson 1.3.0 in nix 2023-11-25 18:33:19 +01:00

README.md

DeepSource

Persephone

Persephone is an experimental and WIP matrix homeserver written in C++20.

Goals

  • Support specifically a server size of 25-1k users with 30-40 normal usage rooms per user.
    • This does not mean we will cripple performance if its better than this.
  • Allow upscaling easily
  • Don't expose too many switches to the user via the config
    • One should be able to understand the whole config fully in less than 2 normal evenings.
    • One should not need more than home-admin understandings of concepts.
  • There should be tests from the start
    • Unit tests
    • Benchmarks
    • Fuzzing

Technology

The technology used will be:

  • C++20
  • Postgresql
  • drogon
  • snitch2
  • c-ares

Building

TODO. Bulk of it: Install ninja, meson and cmake and install drogon.