4 ms·
Arathorn, thanks for responding to comments here. Public discourse comes in all flavors and I appreciate you taking time to respond to the queries and comments.
by mathnmusic 5y ago
Arathorn, thanks for responding to comments here. Public discourse comes in all flavors and I appreciate you taking time to respond to the queries and comments. :)
AFAIK, there are 6 server implementations of Matrix protocol: Synapse (Python), Dendrite (Go), Conduit (Rust), Construct/Charybdis (C++), Plasma (Elixir), Jeon (Java). Are there any more that I have missed? Which ones other than Synapse are most mature? An unbiased comparison post (that remains updated) would be really useful.
A second question is: are the APIs between a homeserver and the frontend defined and standardized? I've noticed this in the ActivityPub ecosystem where it is usually very easy to use one frontend with another backend. Are matrix servers also written in the same way?
- IceWreck 5y agoNot OP,I'm just a happy matrix user. Yes the matrix spec is all standardized. You can use any client with any homeserver.
- Arathorn 5y agoThere are a few other server implementations (polyjuice in Elixir https://gitlab.com/polyjuice/polyjuice_server https://gitlab.com/polyjuice/polyjuice_server; https://github.com/clecat/ocaml-matrix https://github.com/clecat/ocaml-matrix in OCaml; the abandoned mxhsd in Java) - but the most stable ones alternatives to Synapse right now are Dendrite (Go) and Conduit (Rust). Matrix's API surface is big, and servers deliberately handle all the heavy lifting in order to make clients trivial to write, so writing servers is not trivial. But Dendrite & Conduit are both very usable and making good progress right now. And yes, the APIs are all standardised (while also constantly evolving) as per https://spec.matrix.org https://spec.matrix.org :)