Dept of Status of Matrix ๐ŸŒก๏ธ

Josh Simmons reports

Weโ€™re excited to announce the timeline for our first ever elections as we take the next big step in open governance for Matrix. Weโ€™re also introducing two new membership tiers to increase community representation by including open source projects and foundations on the Governing Board.

Read about this and more in our latest blog post.

Dept of Spec ๐Ÿ“œ

Matthew says

I dusted off MSC4016 (Streaming and resumable E2EE file transfers) over the holidays and turned it from a WIP into a full MSC, complete with draft proof-of-concept clientside implementations for the streaming attachment fileformat (hypothetical 'v3 attachments') at https://github.com/matrix-org/matrix-encrypt-attachment/pull/26 and https://github.com/matrix-org/streaming-files-test. Some of the benefits this would bring include:

  • zero-latency file transfer (receiver can start decrypting & playing the download as soon as the upload begins)
  • halving file-transfer duration (as you don't need to wait for the upload to finish before you start to download it)
  • resumble uploads via tus
  • unlimited file transfer size, given it's streamed - no longer limited to ~1GB to fit inside v8's 1.4GB heap on Web.
  • O(1) memory usage for sending files, given it's streamed (great for share extensions)

It works by switching from AES-CTR to splitting the file into blocks, and encrypting each one as AES-GCM, muxing into a very simple file format which provides basic headers to allow framing for incremental decryption and random access. Given this changes the security model of attachments significantly, and given the fileformat is homemade, this MSC is now blocked on needing some serious cryptographic review before it proceeds any further :)

Matthew says

I just came across https://benstokman.me/blog/my-thoughts-on-msc-4080/ and https://benstokman.me/blog/my-new-thoughts-on-msc-4080 - an interesting discussion on the design of CryptoIDs (Client-Owned Identities - MSC4080); the cornerstone of mainstream account portability in Matrix. (Account Portability work is currently paused for a bit, but it shall return...)

Andrew Morgan (anoa) announces

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://spec.matrix.org/proposals.

MSC Status

New MSCs:

  • There were no new MSCs this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

It's been a quite week from the perspective of the MSC Status list, but there has definitely been activity across various MSCs (at least according to my inbox). MSC3981 has seen discussion, as has MSC4041 and MSC2448 (we're considering switching the proposal to Thumbhashes).

More to come next week I suspect!

Dept of Servers ๐Ÿข

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Andrew Morgan (anoa) reports

Happy New Year!

Following on from the release of v1.98.0 (the final release of 2023), as well as seasonal holidays, we expect to return to our usual 2-week release schedule. Starting with a release candidate on Tuesday, January 9th.

As a reminder, Element is switching its development on Synapse to be AGPLv3 at https://github.com/element-hq/synapse, and development from Element's side now continues there (see the blog post if you haven't already). We have done our best to migrate issues from the now-archived matrix-org/synapse repo over, as well as preserving issue and PR numbers. PRs were not migrated, and their PR number has been reserved by a stub issue instead. Huge thanks to Erik and WillL for figuring out the plan there and implementing it (and working with GitHub's heavy rate limits on issue creation!). As well as fixing up CI, packaging, etc. etc.

As things have been a bit topsy-turvy with the migration (and of course the holidays), there's not a huge list of changes to report from the development side. But we did have a few excellent community contributions.

Thanks to @dklimpel, @loelkes, @lanker, @FadhlanR, and @adamjedrzejewski for their PRs!

Expect an increased pace of developer pick right back up from next week, as folks return from holidays.

Dept of Bridges ๐ŸŒ‰

matrix-hookshot (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot says

matrix-hookshot 5.1.1!

Hello wonderful people. I hope you all are having/had a good break. Over in bridge towers we've been working on a few holiday treats in the shape of hookshot improvements. Let me lay them down for you:

  • dark mode ๐ŸŒ— is now a thing! We've moved the majority of the components used in the widget to use Compound, which means a more coherent style and light/dark support. It's still early days so please log bugs as you find them. Also, the dark mode is triggered by whatever the browser believes is your operating systems preference, so currently we don't match any overrides your Matrix client might be setting.
  • Lots of bug fixes around bits of widget interface not updating properly, particularly around feeds.
  • Node 18 support has been dropped, as it's not long for this world and we would like to focus on Node 20/21 support.
  • We have added a list and remove command for webhooks.
  • We now tell you if your bot doesn't have enough PL to speak, meaning you don't need me to confirm it for you :)
  • The GoNEB migrator has been removed, though you can still migrate in a prior release and upgrade.

You can grab the release from here

Dept of Clients ๐Ÿ“ฑ

Moment (website)

A Matrix client; forked from Mirage.

Maze announces

Moment release 0.7.4

I bet no one was expecting this! After 2 years, finally another release of Moment (fork of the old client Mirage)!

Not much has changed. Mostly we're just keeping up to date with dependencies. But you will notice a couple differences:

  • ๐Ÿ‘ Emoji reactions to messages are now displayed (previously not visible)
  • ๐Ÿ–‰ Edited messages are displayed properly (previously only fallback text)
  • ๐Ÿš€ Almost all UI animations were removed, to fit the "snappy powerclient" idea

Fractal (website)

Matrix messaging app for GNOME written in Rust.

Kรฉvin Commaille announces

It is a new year ๐ŸŽ†๏ธ, and what better way to celebrate this than to release Fractal 6.rc? It has been only 2 weeks since our latest beta release, but we have been hard at work during the holidays.

Here is an excerpt:

  • Matrix URIs can be opened with Fractal, it is even registered as a handler for the matrix scheme
  • Our Join Room dialog now shows some room details as a preview upon entering an identifier or URI
  • The verification flow was rewritten to rely more on the Matrix Rust SDK, hopefully solving most issues that occurred before
  • Room members now have a profile page that allows, among other things, to kick, ban or ignore them
  • Speaking of ignoring users, the list can be managed from the account settings
  • The dialog to view an eventโ€™s source was reworked to show more details about the event

โ€ฆ and a lot of other improvements, fixes and new translations thanks to all our contributors, and our upstream projects.

It is available to install via Flathub Beta, see the instructions in our README.

As the version implies, it should be mostly stable and we expect to only include minor improvements until the release of Fractal 6.

If one of your New Yearโ€™s resolutions is to contribute to an open source project, take your pick amongst our issues. Any help is very welcome!

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

benoit announces

Version 0.4.0 of Element X Android is live on the PlayStore. It includes new features like Read Receipt, Chat backup and Mentions, and lots of other features and bugfixes. Full details here: https://github.com/element-hq/element-x-android/releases/tag/v0.4.0. We are now focusing on performance, testing and stabilizing the application, in particular around the Rich Text Editor.

Lots of new features are planned for 2024, stay tuned!

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Florian Heese says

Video rooms Jitsi backend deprecation

Hello from the VoIP team,

In the past months we've had a lot of progress on Element Call our scalable video and voice conferencing solution with calling built natively on Matrix and so benefitting from Matrixโ€™s end-to-end encryption. Now is the time to slowly convert the existing video solutions to default to Element Call. We are starting with video rooms, which will be using the Element Call stack by default in the near future. If you (still) have a Jitsi video room, you will need to re-create it to make use of Element Call.

Stay tuned

Dept of SDKs and Frameworks ๐Ÿงฐ

Rory&::LibMatrix (.NET 8 matrix bot/client library)

Emma [it/its] โšก๏ธ reports

Happy 2024! It's been a while since I last posted a TWIM update... Any help I can get is super appreciated!

Changes

  • Lots and lots of code cleanup
  • Sync deserialisation uses a compiled model now (still slow, but turns out this only affects debug builds)
  • Floating point numbers are now sent as strings (since matrix doesnt like floats)
  • Some internal fields were renamed to be more clear
  • Join rules are now mapped
  • Added utility function to get a room's avatar url as a resolved URI
  • Added support for setting identity assertion on client instances (for appservices)
  • Added overload to get member list as a list instead of an async enumerable
  • Added GetAsObject and GetAsJson to MatrixException, to allow serialization
  • Hot paths no longer use typed event content, due to the overhead of deserializing it
  • Rewrote initialization of a client instance to be cleaner

And, as always:

elm-matrix-sdk

Bram says

This week, beta version 2.1.0 of the Elm SDK has been published!

The minor update is similar to version 2.0.0, where it introduces a new module Matrix.Event but offers no major functionality at the time. The API interactions are planned to come after implementing an exposed Matrix.Room module for interactions with Matrix rooms.

This week, I would love it if you take a look at the Matrix.Event module, and let me know if the documentation is sufficient and meets your requirements. I'd love to hear your feedback in the Matrix room #elm-sdk:matrix.org.

Dept of Events and Talks ๐Ÿ—ฃ๏ธ

The Matrix Community met at the 37th Chaos Communication Congress

erebion ๐Ÿณ๏ธโ€๐ŸŒˆโ™พ โ˜Ž๏ธ 2142 says

The 37th Chaos Communication Congress, sort of a school reunion of hackers, recently ended. From the 27th to the 30th of December 2023, a bunch of nerdy people met up in Hamburg (northern Germany) to discuss all the cool stuff they had been up to. Topics ranged as wide as technology, society, politics and even food hacking as well as a whole lot of other interesting things (talks can by the way be found at https://media.ccc.de/ and most are already uploaded, wow!). We had a Matrix Community Assembly there. An assembly is basically an area for like-minded people to meet up and talk about their topics, in this case Matrix.

We answered questions, sold merch, talked about Matrix-related projects, had workshops about topics like setting up Hookshot, took group photos, tapped beer via Matrix, handed out a bunch of cool new Matrix Community stickers and even fixed some Matrix servers. And Nico bridged the whole Eventphone network to his Matrix account while tinkering and got very confused.

If you have said hello at the event, then also say hello at #chaosevents:matrix.org!

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

matrix-site

urp announces

An example minimal website, dynamically sourcing its content from a public matrix room that anyone can read and publish to.

It uses a custom event io.gitlab.ugrp.post (with two keys, title and text) and provide an interface for guest and registered users to create a new post (cannot edit yet, tbd).

The site is built in vanilla HTML, CSS and Javascript, using the @sctlib/mwc library of web-components (the new version v0.2.1 allows to register a formTemplate and displayTemplate to be able to display and create and custom event in a room).

This is all prototypes (and examples), experimenting using public matrix data outside of traditional chat clients (see also matrix-static). The objectives are to allow users to manage and display their data in environments they control, and subscribe to event feeds from sources they chose.

Dept of Guides ๐Ÿงญ

Josh Simmons says

New year, new homeserver! I completed a migration from managed Matrix with EMS to self-hosting using the matrix-docker-ansible-deploy project. It was a bit tricky as someone new to self-hosting Matrix, but a lot of folks helped along the way and the matrix-docker-ansible-deploy project greatly simplified the process.

I wrote up my notes in the Foundation blog in hopes that they'll be helpful, especially for other folks like me who were on small EMS plans that are being discontinued.

Matrix Federation Stats

Aine announces

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 8389 Matrix federateable servers have been discovered by matrixrooms.info, 2269 (27.0%) of them are publishing their rooms directory over federation. The published directories contain 168449 rooms.

How to add your server | How to remove your server

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.

RankHostnameMedian MS
1rom4nik.pl263
2utzutzutz.net265.5
3nerdhouse.io297
4maunium.net299
5fostered.uk373
6matrix.org454.5
7matrix.its-tps.fr503
8mailstation.de957
9mtrx.fail1544.5
10littlevortex.net2006

#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.

RankHostnameMedian MS
1inu.is144
2nerdhouse.io158
3matrix.its-tps.fr160
4spqr2gang.com163
5frei.chat170
6matrix.org316
7matrix.maymundere.org897
8littlevortex.net1479.5
9shiftsystems.net24439.5
10chat.eutampieri.eu88738

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.

Support us