forked from lda/telodendria
Add technical rationale document.
This commit is contained in:
parent
82d4711f7f
commit
b32aababb3
2 changed files with 65 additions and 0 deletions
15
README.md
15
README.md
|
@ -11,6 +11,8 @@ hosting a complicated, high-maintenance homeserver or joining an
|
|||
existing homeserver for privacy or other reasons, then Telodendria
|
||||
might be for you.
|
||||
|
||||
> **Note:** Telodendria still in development. See [Status](#status).
|
||||
|
||||
## What is Matrix?
|
||||
|
||||
Matrix is an **open standard** for *interoperable*, *decentralized*,
|
||||
|
@ -71,6 +73,19 @@ Telodendria.
|
|||
|
||||
## 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
|
||||
|
||||
Telodendria is maintained by a loosely-knit band of volunteers. The
|
||||
|
|
50
docs/dev/rationale.md
Normal file
50
docs/dev/rationale.md
Normal 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.
|
Loading…
Reference in a new issue