273 lines
16 KiB
Markdown
273 lines
16 KiB
Markdown
+++
|
|
date = "2024-07-26T19:30:00Z"
|
|
title = "This Week in Matrix 2024-07-26"
|
|
path = "/blog/2024/07/26/this-week-in-matrix-2024-07-26"
|
|
|
|
[taxonomies]
|
|
author = ["Thib"]
|
|
category = ["This Week in Matrix"]
|
|
+++
|
|
|
|
## Matrix Live
|
|
|
|
{{youtube_player(video_id="-s3YLoO56r8")}}
|
|
|
|
## Dept of *Status of Matrix* 🌡️
|
|
|
|
[Thib (m.org)](https://matrix.to/#/@thibaultmartin:matrix.org) announces
|
|
|
|
> The Matrix Conference 2024 now has a schedule!!
|
|
>
|
|
> With more than 60 very high quality proposals, it's been difficult to select talks that would make it to the conference.
|
|
> We are _thrilled_ to announce the schedule of the conference, and we're looking forward to listen to that fantastic line up tell us about the future of Matrix, Matrix in the public sector, Matrix in the wild, or the social impact of Matrix!
|
|
>
|
|
> Check out the full schedule at <https://2024.matrix.org/schedule/>
|
|
>
|
|
> If you're an organisation and want to get some visibility in the Matrix ecosystem, we have a few sponsorship packages left at <https://2024.matrix.org/sponsor/>.
|
|
>
|
|
> Don't forget to book your ticket to attend. Head to <https://2024.matrix.org/register/> and tell us whether you want merch or not in addition to your ticket!
|
|
|
|
<!-- more -->
|
|
|
|
## Dept of Spec 📜
|
|
|
|
[Andrew Morgan (anoa) {he/him}](https://matrix.to/#/@andrewm:element.io) says
|
|
|
|
> 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:**
|
|
>
|
|
> * [MSC4171: Service members](https://github.com/matrix-org/matrix-spec-proposals/pull/4171)
|
|
>
|
|
> **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._
|
|
>
|
|
> ### Random MSC of the Week
|
|
>
|
|
> It's a fairly quiet week as far as Spec Core Team pings are concerned. Let's bring back the random MSC of the week!
|
|
>
|
|
> The random MSC of the week is... [MSC2949: Proposal to clarify "Requires auth" and "Rate-limited" in the spec](https://github.com/matrix-org/matrix-spec-proposals/pull/2949)!
|
|
>
|
|
> This proposal seeks to clarify the sometimes vague "Requires auth" and "Rate-limited" labels in the spec. Both are defined as a simple `true/false`, yet some endpoints will accept both authenticated and non-authenticated requests - returning varying content if the request was authenticated. The recommendation instead is for clients to pass authentication for _all_ endpoints. This will also help with backwards-compatibility, if an endpoint is updated to change its behaviour based on the user making the request.
|
|
>
|
|
> As for "rate-limited", whether an endpoint should be rate-limited or not and by what amount is really up to the implementation. In practice a homeserver should really rate-limit _all_ endpoints to some degree, but by how much will depend on the use case.
|
|
>
|
|
> [MSC2949](https://github.com/matrix-org/matrix-spec-proposals/pull/2949) proposes to make it clear that these labels are simply recommendations and to not be treated as absolutes. Alternative solutions include simply doing away with the labels, and instead providing clear guidance for request authentication and rate-limiting that covers all endpoints.
|
|
>
|
|
> If you're a client author and would like to see the spec improve in this regard, jump into the discussion on the MSC PR and have your say!
|
|
|
|
## Dept of Clients 📱
|
|
|
|
### Element X iOS ([website](https://github.com/vector-im/element-x-ios))
|
|
|
|
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
|
|
|
|
[Mauro Romito](https://matrix.to/#/@mauro.romito:element.io) says
|
|
|
|
> * RC 1.7.1 has been released
|
|
> * Fixed some potential crashes
|
|
> * Improved Element call video stability
|
|
> * Added some new languages
|
|
> * Message pinning work has progressed further
|
|
|
|
## Dept of Non Chat Clients 🎛️
|
|
|
|
### Circles ([website](https://www.kombuchaprivacy.com/circles/))
|
|
|
|
E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.
|
|
|
|
[cvwright (FUTO)](https://matrix.to/#/@cvwright:futo.org) announces
|
|
|
|
> For the past 2.5 years the Circles team at FUTO has been pushing toward a big public launch of the app along with a paid subscription service for accounts. Unfortunately it was determined that this will not be feasible. The remaining work required to build the current app into a viable mass-market commercial product is simply much more than the team can handle in the remaining time available.
|
|
>
|
|
> So instead, FUTO has handed the codebase back to the development team. Source code for the app has been transferred to <https://github.com/circles-project>, where Circles will live on as a community open source project under the leadership of the current development team. The license has also been changed, from the (fairly restrictive) AGPL 3.0 to the extremely liberal Apache License 2.0, in order to encourage and facilitate contributions from the community. In the days and weeks ahead, we will also be transferring the project web page, the Google Play Store app, and the Apple App Store app to the new ownership. The Circles app in the main f-droid.org repository will stay where it is, but will be updated to remove its current FUTO branding. The Circles app in FUTO's own F-Droid repo will be removed.
|
|
>
|
|
> For users with accounts on the circles.futo.org servers, and for the handful of users still on the old circu.li servers, FUTO has committed to keeping those instances online through the end of 2024. In the meantime, registration of new accounts has been disabled. A future build of the app will include an in-app message for those on the affected systems. The dev team hopes to be able to provide a hosted service again in the near future, for those users who are new to Matrix and need an account to use the app; please be patient as this will likely take us a few weeks to sort out.
|
|
>
|
|
> FUTO has generously committed to supporting the Circles development team for the next few months. By the end of August, we hope to have the app in good shape with everything that it needs, so that it is ready to enter a sort of maintenance phase if necessary. At that point, we will have the app that I originally set out to build in early 2020. We still have some exciting features on the roadmap, so stay tuned over the next weeks as we put the last major pieces in place.
|
|
>
|
|
> Thanks to everyone in the Matrix community and in the [#circles:matrix.org](https://matrix.to/#/#circles:matrix.org) room for your feedback and encouragement as we built this thing from the ground up. Thanks to FUTO for their generous support over the past 2.5 years, and for allowing us to keep the app alive going forward.
|
|
>
|
|
> tldr - FUTO Circles is dead. Long live The Circles Project.
|
|
|
|
## Dept of SDKs and Frameworks 🧰
|
|
|
|
### Trixnity ([website](https://gitlab.com/trixnity/trixnity))
|
|
|
|
Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers
|
|
|
|
[Benedict](https://matrix.to/#/@benedict:imbitbu.de) says
|
|
|
|
> This week, the Trixnity project has seen several notable improvements. With a valuable contribution from David Phillips, several Endpoints have been fixed. Additionally, a new feature now allows for individual timeouts when calling `getTimelineEvent` in parallel, addressing the previous issue where the first call defined the timeouts for all subsequent parallel calls. The `MatrixRegex` helper-object for matching various Matrix identifiers has been cleaned up, too.
|
|
>
|
|
> Several bugs have also been resolved. Parsing and scanning of mentions are now more reliable. The incorrect calculation of `canLoadBefore` and `canLoadAfter` in the `Timeline`, particularly in rooms with upgrades, has been fixed. Furthermore, JavaScript streams are now closed correctly.
|
|
|
|
### simplematrixbotlib ([website](https://github.com/KrazyKirby99999/simple-matrix-bot-lib))
|
|
|
|
simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio.
|
|
|
|
[imbev](https://matrix.to/#/@imbev:matrix.org) says
|
|
|
|
> simplematrixbotlib v2.12.0
|
|
>
|
|
> An easy to use bot library for the Matrix ecosystem written in Python.
|
|
>
|
|
> Many thanks to saces, DavidCruciani, charlhakeem, Dreamsorcerer, subDesTagesMitExtraKaese, and others for their contributions!
|
|
>
|
|
> Git repository: <https://codeberg.org/imbev/simplematrixbotlib>
|
|
>
|
|
> Python package: <https://pypi.org/project/simplematrixbotlib/2.12.0/>
|
|
>
|
|
> Matrix room: <https://matrix.to/#/#simplematrixbotlib:matrix.org>
|
|
>
|
|
> * Reexport typing via py.typed
|
|
> * Use Python 3.9 as minimum version
|
|
> * Add config option to not spam decryption error on invite
|
|
> * Add API for leaving and forgetting rooms
|
|
> * Add API for sending polls
|
|
> * Add API for administration
|
|
> * Add API for sending location
|
|
> * Add reply\_to to send\_markdown\_message
|
|
> * Improve configuration for device\_name
|
|
> * Add encryption support for send\_image\_message
|
|
> * Improve reply/formatted message match handling
|
|
> * Add config option to do the first sync full
|
|
> * Fix minor bugs
|
|
|
|
### matrix-rust-sdk ([website](https://github.com/matrix-org/matrix-rust-sdk))
|
|
|
|
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
|
|
|
|
[bnjbvr](https://matrix.to/#/@benjib:element.io) says
|
|
|
|
> No updates for the last two months? Here comes a large one, then!
|
|
>
|
|
> * sdk: when using sliding sync, the rooms are now sorted client-side, instead of relying on
|
|
> the list of updated rooms returned by the server. This is more robust in the presence of
|
|
> encrypted rooms, for which the server cannot inspect rooms, and decide by itself whether an event
|
|
> is worth bumping a room to the top of the list or not.
|
|
> * sdk: we added an observable send queue to each room, available with `Room::send_queue()`. A send queue will retry sending events in the
|
|
> background, in the same order events were added to a room. It's also observable and will notify
|
|
> updates whenever it tried multiple times sending an event and failed (which could be a sign that
|
|
> network is down); in that situation, it will stop trying to send subsequent events. To-be-sent
|
|
> events are stored on disk and thus remembered across SDK restarts. Unsent events can be aborted
|
|
> and edited too.
|
|
> * sdk-ui: The Timeline API is now making use of this send queue by default. If you're using it,
|
|
> don't forget to observe the send queue errors at the global level!
|
|
> * sdk: experimental support for a simplified version of sliding sync is in. It's not ready for
|
|
> prime time yet, but expect to hear about it in the upcoming months!
|
|
> * sdk: add support for authenticated media requests. Huge thanks to
|
|
> [@zecakeh](https://github.com/zecakeh) for spearheading the implementation in both Ruma and the
|
|
> SDK!
|
|
> * sdk: A new Room API to save and restore message drafts has been added; follow the breadcrumbs
|
|
> around `Room::save_composer_draft()`.
|
|
> * sdk: the Matrix server version and list of unstable features are now fetched at most once per
|
|
> week, and then cached on disk. It's also possible to force-empty this cache, using
|
|
> `Client::reset_server_capabilities()`.
|
|
> * sdk: it's now possible to set a maximum number of concurrent network requests being carried over
|
|
> at the same time, using `RequestConfig::max_concurrent_requests()`. Thanks to [@gnunicorn](https://github.com/gnunicorn) for this contribution!
|
|
> * sdk: the SDK is now compatible with the new MatrixRTC membership format (MSC4143).
|
|
> * sdk-ui: The unable-to-decrypt (UTD) hook now stops double-reporting events after the SDK restarted.
|
|
> * crypto: decrypted events now have a shield state that indicates whether they can be safely trusted or not.
|
|
> * sdk-base: pinned events can now be fetched in a room, using `Room::pinned_events()`.
|
|
> * sdk: it's now possible to easily reset cross-signing keys with `Client::encryption().reset_cross_signing()`.
|
|
> * And your usual big load of bug fixes (a lot of them in the crypto area, making it more reliable
|
|
> and more robust, which should help reducing unable-to-decrypt issues), refactorings, CI
|
|
> improvements, new capabilities at the FFI layer, you name it!
|
|
>
|
|
> Now it's time for the Summer break for me. Have a nice one, and keep on supporting your local crab
|
|
> programming language 🦀
|
|
|
|
### Elm SDK ([website](https://github.com/noordstar/elm-matrix-sdk))
|
|
|
|
A more consistent alternative to the matrix-js-sdk, written in Elm.
|
|
|
|
[Bram](https://matrix.to/#/@bram:matrix.directory) reports
|
|
|
|
> Now that the major part of the API has been defined, smaller API endpoints are rolling out like cookies in a cookie factory! 🍪🍪🍪 This week's new SDK version comes with a load of new features. Using the Elm SDK:
|
|
>
|
|
> * You can now read & write global account data
|
|
> * You can now read & write account data per room
|
|
> * You can now send both message & state events to rooms
|
|
> * You can now invite, kick & ban other users
|
|
>
|
|
> 📰 [View the docs](https://package.elm-lang.org/packages/noordstar/elm-matrix-sdk-beta/3.5.0/)
|
|
> 🐘 [Share it on the Fediverse](https://social.noordstar.me/notes/9w5yobqtsr)
|
|
> 🗨️ [Join the conversation](https://matrix.to/#/#elm-sdk:matrix.org)
|
|
|
|
## Dept of Ops 🛠
|
|
|
|
### matrix-docker-ansible-deploy ([website](https://github.com/spantaleev/matrix-docker-ansible-deploy))
|
|
|
|
Matrix server setup using Ansible and Docker
|
|
|
|
[Slavi](https://matrix.to/#/@slavi:devture.com) reports
|
|
|
|
> Thanks to [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/), [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) can now set up [synapse-usage-exporter](https://github.com/loelkes/synapse-usage-exporter) - a small [Flask](https://flask.palletsprojects.com)-based webservice which can capture usage statistics from Synapse (via HTTP `PUT`) and then make them available for Prometheus to scrape.
|
|
>
|
|
> To learn more see our [Enabling synapse-usage-exporter for Synapse usage statistics](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-synapse-usage-exporter.md) documentation page.
|
|
|
|
## Matrix Federation Stats
|
|
|
|
[Aine](https://matrix.to/#/@aine:etke.cc) reports
|
|
|
|
> collected by [MatrixRooms.info](https://matrixrooms.info/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) - an [MRS](https://gitlab.com/etke.cc/mrs/api) instance by [etke.cc](https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats)
|
|
>
|
|
> As of today, `9676` Matrix federateable servers have been discovered by matrixrooms.info, `2959` (`30.6%`) of them are publishing their rooms directory over federation.
|
|
> The published directories contain `161397` rooms.
|
|
>
|
|
> Stats timeline is available on [MatrixRooms.info/stats](https://matrixrooms.info/stats/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats)
|
|
>
|
|
> [How to add your server](https://matrixrooms.info/indexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) | [How to remove your server](https://matrixrooms.info/deindexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats)
|
|
|
|
## Dept of Ping
|
|
|
|
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by [pingbot](https://github.com/maubot/echo), a [maubot](https://github.com/maubot/maubot) that you can host on your own server.
|
|
|
|
### [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net)
|
|
Join [#ping:maunium.net](https://matrix.to/#/#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|conduwu.it|214|
|
|
|2|girlboss.ceo|217|
|
|
|3|doctoruwu.uk|220|
|
|
|4|puppygock.gay|302|
|
|
|5|awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay|314.5|
|
|
|6|codestorm.net|389.5|
|
|
|7|sulian.eu|400|
|
|
|8|pussthecat.org|420|
|
|
|9|constellatory.net|464.5|
|
|
|10|nerdhouse.io|509.5|
|
|
|
|
### [#ping-no-synapse:maunium.net](https://matrix.to/#/#ping-no-synapse:maunium.net)
|
|
Join [#ping-no-synapse:maunium.net](https://matrix.to/#/#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|awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay|96|
|
|
|2|girlboss.ceo|114|
|
|
|3|doctoruwu.uk|117|
|
|
|4|conduwu.it|141.5|
|
|
|5|puppygock.gay|217|
|
|
|6|uwu.sulian.eu|230|
|
|
|7|gemeinsam.jetzt|351|
|
|
|8|inu.is|357|
|
|
|9|awawi.nexus|414|
|
|
|10|reallyaweso.me|444.5|
|
|
|
|
## That's all I know
|
|
|
|
See you next week, and be sure to stop by [#twim:matrix.org](https://matrix.to/#/#twim:matrix.org) with your updates!
|