From d50372a91ab0cca8032c330d61dd5e0719dc8022 Mon Sep 17 00:00:00 2001 From: Jordan Bancino Date: Fri, 8 Sep 2023 16:34:27 -0400 Subject: [PATCH] Add technical rationale document. --- README.md | 15 +++++++++++++ docs/dev/rationale.md | 50 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 docs/dev/rationale.md diff --git a/README.md b/README.md index f2a0d33..7a2e9d0 100644 --- a/README.md +++ b/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 diff --git a/docs/dev/rationale.md b/docs/dev/rationale.md new file mode 100644 index 0000000..5358bc2 --- /dev/null +++ b/docs/dev/rationale.md @@ -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.