matrix.org/content/blog/2023/04/2023-04-21-this-week-in-mat...

13 KiB
Raw Permalink Blame History

+++ 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 the device_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

  • Were still working hard on stuck notifications:

    • The prototype implementation of MSC 3981 is finished and the first round of feedback is positive.
    • Weve extended dev tools - now you can see dev tools from the room list meaning you dont have to go into a room in order to access it .
  • Improving notifications in general is also still in progress, next week well 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 were 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 a Cmd type from a Task Never VaultUpdate type, which means that the Vault type handles all potential complaints for you.
  • When a Cmd fails and the Vault thinks it is wise to try again, it will sneak that one along with the next Cmd you're planning on giving to the API. Feedback on this behaviour is welcome, this might still change before version 1.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,

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!