13 KiB
+++ title = "This Week in Matrix 2023-04-21" date = "2023-04-21T20:14:55Z" path = "/blog/2023/04/21/this-week-in-matrix-2023-04-21"
[taxonomies] author = ["Thib"] category = ["This Week in Matrix"] +++
Matrix Live
{{ youtube_player(video_id="1VKBD_6PTvs") }}
Dept of Servers 🏢
Telodendria (website)
An open source Matrix homeserver implementation written from scratch in ANSI C and designed to be lightweight and simple, yet functional
Jordan Bancino reports
Telodendria, the very-much-a-work-in-progress Matrix homeserver written in C, has undergone some major architecture changes that make it more robust, more maintainable, and more feature-complete. Of note are these new features that came about as a result of the changes, though there are many more:
- TLS: We now have full TLS support for both the client and the server. Take your pick of OpenSSL or LibreSSL, or easily add support for another TLS implementation using our simple I/O API.
- Admin API: Work on the administrator API has begun. This includes implementing user privileges, and moving the program configuration to the database so it can be managed with a simple JSON API.
We have also done a little work on the Matrix specification:
- Account Management: Users can now change their passwords, set display names and avatars, and get information about their account.
- User Interactive Authentication (UIA): UIA is basically complete, I'm just working on wrapping up the web fallback pages. You can now use registration tokens to register for accounts on a Telodendria server as well, though as of the time of my writing this, these tokens can't be created through the Admin API quite yet.
Almost all of Client Authentication is complete and we are almost ready to move on to the core of the Matrix specification—rooms and events.
Visit #telodendria-newsletter:bancino.net for more details, and feel free to join the discussion at #telodendria-general:bancino.net if you're interested in the project.
Synapse (website)
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Shay says
Welcome back to the backend section of TWIM. This week we released Synapse v1.82.0rc1 for your consideration. Here are a few of the highlights:
- Allow loading the
/directory/room/{roomAlias}
endpoint on workers- Add some validation to
instance_map
configuration loading- Delete server-side backup keys when deactivating an account
- Fix and document untold assumption that
on_logged_out
module hooks will be called before the deletion of pushers- Remove the broken, unspecced registration fallback. Note that the login fallback is unaffected by this change.
And much more! You can take a look at the release notes here: https://github.com/matrix-org/synapse/releases. As always, if you encounter a bug feel free to report it at https://github.com/matrix-org/synapse/issues/new/choose.
Construct (website)
A performance-oriented homeserver with minimal dependencies.
Jason Volk says
🔓 End-to-End Encryption is significantly more reliable in Construct this week. E2EE had always been flaky, but it was never clear before where it was going wrong.
⛏️ The ice broke earlier this week when I noticed in a small corner of an Element dialogue that my
device_id
was being cut off at its:
character. After simplifying thedevice_id
grammar things started to light up green again. I was then able to work through a standard list of bugs, ancient code-rot, and a couple of incomplete endpoints.🔐 All of this results in robust encryption sessions that survive clear-cache and reload, proper key backups without old sessions hanging around, and interactive verification without random cancellations. At the time of this writing, there is still one remaining hold-up with device verification for cross-signing so this week's dockers might not finish building until mid-Saturday.
🙋♂️ I'd like to thank Giovanni Bottaro for tracking down an issue leading one of the patches above. 🙋 I'd like to thank qg for tracking down a rocksdb-related bug late last week right after TWIM. This fix has already been shipped in the latest Construct.
Don't keep your ❤️ for Construct a secret. Join #test:zemos.net to encrypt everything else.
Dept of Clients 📱
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
kittykat reports
We’re still working hard on stuck notifications:
- The prototype implementation of MSC 3981 is finished and the first round of feedback is positive.
- We’ve extended dev tools - now you can see dev tools from the room list meaning you don’t have to go into a room in order to access it .
Improving notifications in general is also still in progress, next week we’ll be mapping push rules to improve settings pages and make them simpler for all users.
Our improvements to accessibility continue to be delivered also which we’re very excited about.
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
Ștefan says
Element version 1.10.11 is incoming with mention pill support in the rich text editor, bug fixes and performance improvements. We have also made various improvements to the timeline UI, improved our crypto stack and saw the first version of slash commands suggestions
Element X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK.
Ștefan says
This week in Element X,
- We have fixed various issues around sliding sync, improved notification handling and various root components
- We are making very good progress on OIDC and invitation support while work continues on media uploading and the room creation, room detail and user detail screens
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
benoit says
- Element Android 1.5.32 has been released and will be available soon for everyone. It includes a fix for the double read receipt observed on the timeline.
- On ElementX, we are making progress on Oidc support, we are improving the room list and the timeline rendering, user will be able to ignore and un-ignore other users, the app can now list invitations and the user can accept or reject them, and lots of other technical features like feature flags have been done.
Dept of Encryption 🔐
Messaging Layer Security
uhoreg says
Messaging Layer Security (MLS) is an IETF standard for end-to-end encryption in messaging systems. We've been working on adapting it to work with Matrix, and implementing a proof-of-concept in Element web. You can view an demo of some of the early progress at https://scitech.video/w/sfMitVx1Zej4Yvvu3fAK5B, which shows creation of an MLS group and exchange of encrypted messages. But things are progressing, and this demo is already out of date. Keep an eye out for more demos.
Dept of SDKs and Frameworks 🧰
elm-matrix-sdk (website)
Matrix SDK implemented in Elm.
Bram reports
After having received feedback from the Matrix and Elm community on the Chess client, it is now time for the final development phase: making the SDK developer-friendly so that a version
v1.0.0
can be published.The Elm SDK has received a large refactor, which includes the following changes:
- No more
Task
types! Everything is now packaged in aCmd
type from aTask Never VaultUpdate
type, which means that theVault
type handles all potential complaints for you.- When a
Cmd
fails and theVault
thinks it is wise to try again, it will sneak that one along with the nextCmd
you're planning on giving to the API. Feedback on this behaviour is welcome, this might still change before version1.0.0
.- Greatly improved documentation
The current plan is to implement filters so that the SDK will be butter smooth sailing through that endless initial sync. There's still a few ambiguities left in the Matrix spec that are holding the SDK back as a pure and immutable language, but we're slowly getting there.
For demo purposes, here's a demonstration of how to get all named Matrix rooms from your client:
rooms : List String rooms = vault |> Matrix.getRooms |> List.filterMap Matrix.Room.name
matrix-rust-sdk (website)
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte says
Since our last update three weeks ago,
- There were new releases of our JS crypto bindings: matrix-sdk-crypto-nodejs-v0.1.0-beta.4, matrix-sdk-crypto-js-0.1.0-alpha.7
- We updated logs and other debug info
- A bunch of functionality was added to the main FFI crate:
- And as usual, a bunch of bugfixes, cleanup and refactoring
Dept of Services 🚀
activepieces
imbev reports
activepieces is a No-code Business Automation Tool and a FOSS alternative to Zapier.
Following my pull request, activepieces has added support for sending messages to Matrix.
Dept of Ping
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.
#ping:maunium.net
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | maescool.be | 488 |
2 | chat.braydmedia.de | 589 |
3 | anontier.nl | 664.5 |
4 | kohlernet.de | 690.5 |
5 | not-a.computer | 713 |
6 | matrix.org | 1654 |
7 | projectsegfau.lt | 2237 |
8 | 35c4p37h3m47r1x.ddns.net | 2441 |
9 | zemos.net | 3380 |
10 | aguiarvieira.pt | 4309 |
#ping-no-synapse:maunium.net
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | 777.tf | 292 |
2 | zemos.net | 520.5 |
3 | dendrite.matrix.org | 624.5 |
4 | herkulessi.de | 682.5 |
5 | dendrite.kootstra.frl | 975.5 |
6 | matrix.org | 1246.5 |
7 | test.zemos.net | 1741 |
8 | midnightthoughts.space | 2755 |
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!