Add technical rationale document.

This commit is contained in:
Jordan Bancino 2023-09-08 16:34:27 -04:00
parent fa3b5e95bd
commit d50372a91a
2 changed files with 65 additions and 0 deletions

View file

@ -11,6 +11,8 @@ hosting a complicated, high-maintenance homeserver or joining an
existing homeserver for privacy or other reasons, then Telodendria existing homeserver for privacy or other reasons, then Telodendria
might be for you. might be for you.
> **Note:** Telodendria still in development. See [Status](#status).
## What is Matrix? ## What is Matrix?
Matrix is an **open standard** for *interoperable*, *decentralized*, Matrix is an **open standard** for *interoperable*, *decentralized*,
@ -71,6 +73,19 @@ Telodendria.
## Status ## Status
Telodendria is in the very early stages of development. As such, it may
not yet deliver on all of its promises. Currently, Telodendria is not
ready for end-users yet. While it features very basic user
authentication, it does not actually work as a chat server yet.
We are hoping to ship Telodendria `v0.4.0` by May of 2024. This
release should be usable for communication between **local users**
only. Additional features, including federation with other Matrix
homeservers will be added in future releases.
You can help speed up development by [sponsoring](#sponsorship)
Telodendria or [getting involved](docs/CONTRIBUTING.md).
## Sponsorship ## Sponsorship
Telodendria is maintained by a loosely-knit band of volunteers. The Telodendria is maintained by a loosely-knit band of volunteers. The

50
docs/dev/rationale.md Normal file
View file

@ -0,0 +1,50 @@
# Rationale
This document seeks to answer the question of "why Telodendria?" from
a technical perspective by comparing it to existing Matrix homservers.
Telodendria is written entirely from scratch in ANSI C. It is designed
to be lightweight, simple, and functional. Telodendria differentiates
itself from other homeserver implementations because it:
- Is written C, a stable, low-level programming language with a long
history, low build and runtime overhead, and wide compatibility.
- Is written with minimalism as a primary design goal. Whenever possible
and practical, no third-party libraries are pulled into the code.
Everything Telodnedria needs is custom written. As a result, Telodendria
depends only on a standard C compiler and a POSIX C library to be
built, both of which should come with any good Unix-style operating
system already, which means you shouldn't have to install anything
additional to use Telodendria.
- Uses a flat-file directory structure to store data instead of a
real database. This has a number of advantages:
- It make setup and mainenance much easier.
- It allows Telodendria to run on systems with fewer resources.
- Is packaged as a single small, statically-linked and highly-optimized
binary that can be run just about anywhere. It is designed to be
extremely easy to set up and consume as few resources as possible.
- Is permissively licensed. Telodendria is licensed under a modified
MIT license, which imposes very few restrictions on what you can do
with it.
## What about [Conduit](https://conduit.rs)?
At this point, you may be wondering why one would prefer Telodendria
over Conduit, a Matrix homeserver that could also say pretty much
everything this document has said so far. After all, Conduit is older
and thus better established, and written in Rust, a Memory Safe™
programming language.
In this section, we will discuss some additional advantages of
Telodendria that Conduit lacks.
### Small Dependency Chain
**TODO:** See #30.
### Standardized
**TODO:** See #30.
### Portable
**TODO:** See #30.