fork for working with ci stuff
Find a file
Jason Volk 946ca364e0 Database Refactor
combine service/users data w/ mod unit

split sliding sync related out of service/users

instrument database entry points

remove increment crap from database interface

de-wrap all database get() calls

de-wrap all database insert() calls

de-wrap all database remove() calls

refactor database interface for async streaming

add query key serializer for database

implement Debug for result handle

add query deserializer for database

add deserialization trait for option handle

start a stream utils suite

de-wrap/asyncify/type-query count_one_time_keys()

de-wrap/asyncify users count

add admin query users command suite

de-wrap/asyncify users exists

de-wrap/partially asyncify user filter related

asyncify/de-wrap users device/keys related

asyncify/de-wrap user auth/misc related

asyncify/de-wrap users blurhash

asyncify/de-wrap account_data get; merge Data into Service

partial asyncify/de-wrap uiaa; merge Data into Service

partially asyncify/de-wrap transaction_ids get; merge Data into Service

partially asyncify/de-wrap key_backups; merge Data into Service

asyncify/de-wrap pusher service getters; merge Data into Service

asyncify/de-wrap rooms alias getters/some iterators

asyncify/de-wrap rooms directory getters/iterator

partially asyncify/de-wrap rooms lazy-loading

partially asyncify/de-wrap rooms metadata

asyncify/dewrap rooms outlier

asyncify/dewrap rooms pdu_metadata

dewrap/partially asyncify rooms read receipt

de-wrap rooms search service

de-wrap/partially asyncify rooms user service

partial de-wrap rooms state_compressor

de-wrap rooms state_cache

de-wrap room state et al

de-wrap rooms timeline service

additional users device/keys related

de-wrap/asyncify sender

asyncify services

refactor database to TryFuture/TryStream

refactor services for TryFuture/TryStream

asyncify api handlers

additional asyncification for admin module

abstract stream related; support reverse streams

additional stream conversions

asyncify state-res related

Signed-off-by: Jason Volk <jason@zemos.net>
2024-10-25 00:32:30 -04:00
.gitea Update ci.yml 2024-08-27 13:56:43 -04:00
.github/workflows remove -unknown- from nix flake 2024-10-24 23:04:14 -04:00
.gitlab docs: build docs using mdBook, build in CI, deploy to gitlab pages 2024-03-19 00:17:41 -04:00
arch remove ProcSubset=pid from systemd units for now 2024-10-24 23:51:02 -04:00
bin remove -unknown- from nix flake 2024-10-24 23:04:14 -04:00
debian remove ProcSubset=pid from systemd units for now 2024-10-24 23:51:02 -04:00
deps/rust-rocksdb bump rust to 1.82.0, rocksdb v9.7.3, ruwuma, and a few nix pkgs 2024-10-24 20:47:51 -04:00
docs remove -unknown- from nix flake 2024-10-24 23:04:14 -04:00
nix/pkgs misc CI improvements, build macOS binaries, flake improvements/fixes 2024-10-24 21:29:17 -04:00
src Database Refactor 2024-10-25 00:32:30 -04:00
tests update complement results for TestFederationThumbnail 2024-09-08 16:22:02 -04:00
theme docs: add slight theme changes, better title 2024-06-16 20:58:17 -04:00
.dockerignore replace all mentions of docker compose v1 2024-04-26 02:03:40 -04:00
.editorconfig .editorconfig: use tabs for rust files 2024-08-24 05:11:38 +02:00
.envrc load .env file before initializing flake to use DIRENV_DEVSHELL in .env 2024-06-03 00:10:28 -04:00
.git-blame-ignore-revs fix git blame ignore revs 2024-03-26 22:24:24 -04:00
.gitignore envrc: allow loading env vars from .env if it exists 2024-05-06 03:45:10 -04:00
.gitlab-ci.yml remove -unknown- from nix flake 2024-10-24 23:04:14 -04:00
.markdownlintignore add markdownlint and run lychee in documentation CI workflow 2024-07-03 11:30:16 -04:00
book.toml docs: add slight theme changes, better title 2024-06-16 20:58:17 -04:00
Cargo.lock Database Refactor 2024-10-25 00:32:30 -04:00
Cargo.toml Database Refactor 2024-10-25 00:32:30 -04:00
clippy.toml Database Refactor 2024-10-25 00:32:30 -04:00
CODE_OF_CONDUCT.md auto-fix some markdown lints 2024-07-03 11:30:16 -04:00
conduwuit-example.toml add config option to control sending admin notices of alerts 2024-10-24 22:37:34 -04:00
CONTRIBUTING.md docs: add some more conduwuit development info 2024-09-06 20:33:02 -04:00
default.nix feat: support non-flake users 2024-02-11 21:56:55 -05:00
development.md docs: add some more conduwuit development info 2024-09-06 20:33:02 -04:00
engage.toml docs: ignore development.md and contributing.md from lychee 2024-09-08 10:24:38 -04:00
flake.lock bump rust to 1.82.0, rocksdb v9.7.3, ruwuma, and a few nix pkgs 2024-10-24 20:47:51 -04:00
flake.nix misc CI improvements, build macOS binaries, flake improvements/fixes 2024-10-24 21:29:17 -04:00
LICENSE remove nightly only feature, small housekeeping stuff 2023-11-29 21:59:18 -05:00
README.md add note that ko-fi takes a fee 2024-10-24 22:02:58 -04:00
renovate.json renovate: exclude rust deps we forked / cant easily bump or upgrade 2024-08-30 12:57:50 -04:00
rust-toolchain.toml bump rust to 1.82.0, rocksdb v9.7.3, ruwuma, and a few nix pkgs 2024-10-24 20:47:51 -04:00
rustfmt.toml use chain_width 60 2024-03-26 22:24:24 -04:00

conduwuit

main: CI and
Artifacts

a very cool, featureful fork of Conduit

Visit the conduwuit documentation for more information.

What is Matrix?

Matrix is an open network for secure and decentralized communication. Users from every Matrix homeserver can chat with users from all other Matrix servers. You can even use bridges (also called Matrix Appservices) to communicate with users outside of Matrix, like a community on Discord.

What is the goal?

A high-performance and efficient Matrix homeserver that's easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.

Can I try it out?

An official conduwuit server ran by me is available at transfem.dev (element.transfem.dev / cinny.transfem.dev)

transfem.dev is a public homeserver that can be used, it is not a "test only homeserver". This means there are rules, so please read the rules: https://transfem.dev/homeserver_rules.txt

transfem.dev is also listed at servers.joinmatrix.org

What is the current status?

conduwuit is technically a hard fork of Conduit, which is in Beta. The Beta status initially was inherited from Conduit, however overtime this Beta status is rapidly becoming less and less relevant as our codebase significantly diverges more and more.

conduwuit is quite stable and very usable as a daily driver and for a low-medium sized homeserver. There is still a lot of more work to be done, but it is in a far better place than the project was in early 2024.

How is conduwuit funded? Is conduwuit sustainable?

conduwuit has no external funding. This is made possible purely in my freetime with contributors, also in their free time, and only by user-curated donations.

conduwuit has existed since around November 2023, but only became more publicly known in March/April 2024 and we have no plans in stopping or slowing down any time soon!

Can I migrate or switch from Conduit?

conduwuit is a complete drop-in replacement for Conduit. As long as you are using RocksDB, the only "migration" you need to do is replace the binary or container image. There is no harm or additional steps required for using conduwuit.

Contact

If you run into any question, feel free to

Donate

conduwuit development is purely made possible by myself and contributors. I do not get paid to work on this, and I work on it in my free time. Donations are heavily appreciated! 💜🥺

Original repo and Matrix room picture was from bran (<3). Current banner image and logo is directly from this cohost post.

Is it conduwuit or Conduwuit?

Both, but I prefer conduwuit.

Mirrors of conduwuit