3 ms·
> Thank you for staying in touch with critics! That's super encouraging and so is your "Matrix 2.0" talk. thanks. > I don't want to berate you, but ... > Af
by Arathorn 3y ago
> Thank you for staying in touch with critics! That's super encouraging and so is your "Matrix 2.0" talk.
thanks.
> I don't want to berate you, but
...
> After hours of, experimentation and piecing together Client-Server API documentation, method documentation, MSCs and Github discussions (I could find a single piece of high-level documentation, which is marked as outdated and doesn't cover much) I managed to do some basic things with the JS-SDK (sliding sync support is solid, Rust crypto is not).
I'm assuming you're talking about https://matrix.org/docs/legacy/usage-of-the-matrix-js-sdk https://matrix.org/docs/legacy/usage-of-the-matrix-js-sdk? Yes, matrix-js-sdk's documentation is substandard. The rust crypto is brand new and hasn't landed in Element Web, let alone been documented yet, but is rock solid, fwiw.
> the spec is mutable (we’re on room version 11 already, and pretty much everything can change between room versions), and we’ve been steadily fixing stuff over the years
Room versions typically define how rooms are replicated between servers, and unless you are implementing a server you can ignore them almost entirely. They have never changed anything client-facing, and we've never significantly broken backwards compatibility on the Client Server API. In fact, I can still take the very first ever Matrix client (matrix console, which I started in July 2014) and use it with a modern synapse.
> I mean: Fixing stuff is great (sliding sync is much needed), but I can't/don't really want to build my house on sand.
You're not.
> I guess this puts me back into the situation of having to use a "first-party" SDK (JS/Rust) to be certain that things will continue working after big spec updates (I'm both excited for and frightened by the move to MLS).
No, because we keep backwards compatibility. So yes, obviously a client that doesn't implement MLS won't be able to participate in MLS rooms. Just as a 2014-vintage Matrix client that doesn't implement Olm/Megolm won't be able to participate in Olm/Megolm rooms either.
Matrix is designed to be roughly as robust as the Web, and evolve similarly. Most consider that a feature rather than a bug.
- solarkraft 3y agoThank you, that clears up quite a few things! FWIW, I'm currently writing up some high-level docs as I learn (https://md.fachschaften.org/UTByBywRSiqvisv4nDupIQ https://md.fachschaften.org/UTByBywRSiqvisv4nDupIQ), with the idea to perhaps submit them in a PR. Do you have more resources to point me towards than I already know, perhaps people to talk to who are willing to answer questions or collaborate in writing? I think this is super-duper important for the ecosystem because otherwise it's super hard to make a new client. > The rust crypto is brand new and hasn't landed in Element Web, let alone been documented yet, but is rock solid, fwiw. Hmm, as far as I understand I haven't been able to upload my client's public keys with it, so that other sessions would keep thinking it doesn't support encryption and hence verification.