Here’s your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.
This week the Spec Core Team has been working with the IETF More Instant Messaging Interoperability (MIMI) working group to define a charter. With a charter, the working group is able to start thinking about implementation and design details, which means talking even more about Matrix!
We had the opportunity to discuss Matrix with several interested people at IETF this week, and are extremely excited for the (long) road ahead: even in the event where Matrix doesn’t get accepted, we hope the protocol(s) the working group publishes will be fit for purpose and adopted widely (not to mention our own spec will be better as a result).
To find out more about what we’re doing in this space or to learn more, check out this week’s Matrix Live above!
Polls! They are useful for quickly gauging whether a group of people agree, or entirely disagree on a topic or choice. This is an MSC with a fairly long history, but has received experimental implementation in a small number of Matrix clients. The concept uses Extensible Events, and there are plans to rewrite it off the back of changes in MSC1767 (extensible events). But for now, it works and is a fun feature.
It’s likely worth waiting for the rewrite before commenting on the MSC with detailed changes, but otherwise feel free to have a read to see how it currently works!
Feta is a Matrix server distribution for the Raspberry Pi 3 and 4.
It is a an operating system image, based on Raspberry Pi OS Lite and includes the Matrix Synapse server, a self-hosted Element client, Postgres database, and it generates an SSL certificate for your domain using Certbot. The coturn TURN server is also included so voice and video calls work without any additional configuration.
The provided setup script will have your server up and running in a matter of minutes.
All you need to do is configure your DNS settings for your domain, forward some ports through your router, and boot up your Raspberry Pi. Once setup is complete, enjoy your new Matrix server! Synapse, Element, Postgres, coturn, and federation are all preconfigured for you.
Donations: Both recurring and one-time donations are now accepted via LiberaPay and Stripe, respectively—GitHub Sponsors is hopefully coming soon. All funds will go directly to infrastructure and development labor. You can find the donate links on the website, and the GitHub mirror.
Memory/Network Improvements: Another week brings another round of memory and socket handling improvements.
Patch Submission: It’s now easier than ever to contribute to Telodendria thanks to the new send-patch script. Submitting your changes for review is now only a single command.
Synapse 1.71.0 has been released! It contains the usual round of bugfixes and performance improvements, plus some new features. Notably, Synapse now supports:
back-channel logouts from OpenID Connect providers.
Postgres and SQLite full-text search operators in search queries.
MSC3664, push rules for relations.
Server administrators should be aware that:
legacy Prometheus metric names are now disabled by default, and will be removed altogether in Synapse 1.73.0.
If not already done, server administrators should update their dashboards and alerting rules to avoid using the deprecated metric names.
Synapse 1.71.0 will be the last release to support PostgreSQL 10. Server administrators are encouraged to upgrade their PostgreSQL servers before the next release, if needed.
the last planned feature of the roadmap: send reply (reply-to or thread reply) to an email message in the matrix room and it will automatically set all magic stuff (In-Reply-To header, subject with Re: %original message's subject%, etc) and send email. It’s pretty rough implementation, so feedback is appreciated!
We have been working hard on improving the Element experience and to that extend we have fixed some crashes, squashed timeline layout issues, improved the device manager and the new rich text editor
Work is also continuing on thread notifications and the new crypto frameworks
ElementX on the other hand received support for offline logins, message editing, video and encrypted messages in the timeline and a brand new underlying navigation mechanism
Element Android 1.5.7 has been pushed to production on the PlayStore and should also be available for F-Droid users soon. This version fixes the issue when sharing items to the app, and also fixes the regression observed in 1.5.6 (before it reaches production!) during the first sync with the server.
We are making progress on ElementX, which is a new client using the Matrix Rust SDK and Jetpack Compose. This app is now able to display a timeline and send messages to a room using the wysiwyg composer.
We released Trixnity 3.0.0-beta3, which supports the matrix spec 1.4 and new relation types: reply (without fallback), replace, thread (basic support, no separate timelines or client aggregations yet).
A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.
Since our last update in June (yeah, sorry…), we released Ruma 0.7.0 and a few patch releases including all of the following and more:
Support for refresh tokens (MSC2918 / Matrix 1.4)
Unstable support for discovering an OpenID Connect Server (MSC2965)
Unstable support for private read receipts
Lots of API refinements, like renaming AnyRoomEvent to AnyTimelineEvent
Support for Room Version 10
Unstable support for sliding sync
Since this release was released back in September, a bunch of things have also happened that are not released yet:
Many features were moved out of unstable feature flags because they were stabilized in Matrix 1.4
We made message construction easier than ever with improvements to markdown detection and improvements to reply and edit creation
We refactored and extended the push notification code
We are about to conclude a massive refactoring that should make our codebase look less strange if you are familiar with Rust, and could help compile times as well
As usual a lot of work is been going in the background without any visible, tangible outcome yet. On one side we are making great progress on getting a first async-prototype for uniffi with python working, on the other we have been profiling the sdk on iOS mobile devices for its memory footprint - which is a major blocker for notification support.
️👉 Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.
Using this Lua script and NodeJS bot, you can remotely control any GameBoy (Classic + Color + Advance) game using the mGBA emulator. Invite some friends to the Matrix room and everyone can control the game at once.
Yes, the project name is a reference to the famous “Twitch Plays Pokémon” stream which has 1000s of people complete Pokémon games together just by typing into a chat.
This is a bot and does not need an AppService registration.
Disclaimer: This is a hobby project of mine. It is neither associated with nor endorsed by my employer or Nintendo. The project does not contain ROMs or other non-free assets.
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.
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
babel.sh
130
2
dendrite.matrix.org
185
3
kumma.juttu.asia
219
4
rustybever.be
327.5
5
forlorn.day
511
6
frai.se
606.5
7
matrix.milkte.ch
1078
8
babel1.eu
1243
9
willian.wang
36298
10
jacksonchen666.com
236505
That’s all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.