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
In terms of Spec Core Team MSC focus for this week, we've been aiming to get the requirements for MSC3952: Intentional Mentions landed as well as discussing MSC3952 itself, in addition to planning out what the next few spec releases are expected to look like.
Watch this space for progress on the Matrix 2.0 MSCs and other critical path items :)
Curated MSC of the week
This week's random chosen MSC is MSC3575: Sliding Sync! It's one of the largest (or is the largest?) MSCs we've ever had, and dramatically changes how clients actually get updates from the server. It's worth the read if you're a client developer, though the team working on it is ironing out some bugs. Let us know what you think on the MSC :)
The Chart
It seemingly was okay with being generated this week again, so here it is:
If you didn't already catch it this week, Gitter has fully migrated to Matrix! 😎
We brought over all of the historical Gitter content to the gitter.im homeserver and gave everyone free rein over it via app.gitter.im, a Gitter branded Element instance.
Of course, since it's Matrix, you can use whatever client you want to access your public, private and one to one (now DM) conversations!
You can read about the full details in the blog post: https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/
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
With the Extensible Events Core (MSC1767) being accepted last week, the focus now turns to all the other extensible event MSCs for images, files, etc. How does extensible events relate to IETF/MIMI/DMA, you ask? In our mission for having Matrix be the standard for interoperability, we need a content format that works for everyone. Events prior to MSC1767 could work with enough effort, though MSC1767's system makes things a lot easier when representing arbitrarily complex messaging features.
Stay tuned to TWIM for progress in this area. It's a relatively slow process, but we're working through it.
Random MSC of the week
This week's random MSC is MSC2785: Event notification attributes and actions! This is effectively a replacement for the push rules system we have today, and a super interesting one (how do you even design a notifications system?). Focus has shifted a little bit since this MSC was first opened, though its ideas still comes up frequently when aiming to make smaller changes to push rules today.
The Chart
The chart has been giving us a bit of grief when trying to be generated, but today it seems agreeable enough to include - enjoy :)
In keeping with our (roughly) quarterly release schedule of the Matrix Spec, v1.6 is due to be released on February 14th. That's only four days from now! The headline features are a new Jump-to-Date Client-Server API (MSC3030) and initial work on speeding up room joins (MSC3706), along with many other fixes and clarifications to the spec text itself.
If you haven't yet seen it, Matthew's Matrix 2.0 talk at FOSDEM walks through some of the upcoming features in the spec. Each will land in subsequent, future releases of the spec. Once all have landed, we'll call that Matrix 2.0 (in name and in actual version number).
Extensible events is one such upcoming feature. While the core proposal outlining the feature (MSC1767) will land in v1.6, the smattering of MSCs which describe how various event types will work under extensible events will span multiple upcoming spec versions. Watch this space!
This MSC is relatively simple; proposing a method for widgets to ask the client for additional capabilities after it has already been initialised. Doing so allows for increased security and privacy workflows, as the widget need only ask for access to certain pieces of data at the point that it needs it (rather than all up front).
A similar transition of permission granting happened in mobile devices and apps. Initially mobile apps would ask for all permissions they would need up front - which users would blindly accept. These days, mobile OS's have shifted to a model where individual permissions are requested upon attempting to complete an action in an app. This way, users have better context on the reason for the permissions request. (Oddly, browsers have yet to reach this stage with extensions - those still ask for all permissions up front.)
Do check out the proposal and its technical details if widgets are your thing!
For the past two years, FOSDEM couldn’t happen in-person. Fortunately we could
help, and Matrix hosted the world's largest free & open source software
conference online! This year we were finally back in-person… but not only.
The set-up we have arranged in 2021
and polished in 2022
has proved to be robust and served us well during the pandemic. Returning to an
in-person conference didn’t mean we had to throw it all away… quite the
opposite!
The Matrix Foundation is a candidate this year again to the GSoC programme. If you intend to mentor a student around your Matrix project, please ping me (@thib:ergaster.org) in the #gsoc:matrix.org room. Your project doesn't have to be set in stone yet: we need to have a good estimate of the number of mentors and projects applying before FOSDEM (by the end of next week).
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 and the week afterwards, the Spec Core Team are mostly focused on improvements to Matrix that we'd like to show off at FOSDEM 2023 this year! That consists of MSCs related to Faster Room Joins (MSC3943 among others) and Extensible Events (MSC1767).
This defines an algorithm and a data structure that can be used to order one's top-level list of Spaces and have that order sync across all of their clients. Rooms and spaces within a Space continue to have their order defined by an order key (and failing that, the origin_server_ts field) in the corresponding m.space.child event of their parent's Space's state.
I won't get into the details of the algorithm here (or its criticisms), but feel free to jump into the MSC and take a look!
Back in July I started a discussion on wikidata for adding a matrix space property, after much discussion in the wikidata community (lead mostly by tgr) we instead landed on a Matrix room property. This now enables slightly more accurate semantics when describing matrix rooms belonging to organizations, projects, and people on wikidata.
Wikidata is a knowledge base available under a free license and using standard machine-parsable data to add information to what is known as the "semantic web", this allows querying for information like for example: Organizations with matrix rooms
As the rest of wikimedia's projects it's open for contributions!
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.
As you can tell from the above MSC list, Extensible Events continues to charge forwards, with Travis working busily away at replicating all of the existing event functionality (plus new functionality - image albums anyone?) in a world containing Extensible Events. As always, take a look at the core MSC (MSC1767) for a background on what Extensible Events is, and why it's so exciting.
This week has also seen room version 10 become the default recommended room version in the spec! As a reminder, v10 brings the ability to have a room that's both knockable and restricted at once, as well as more strictly enforces the types of power level values.
Otherwise we've seen lots of movement in other areas of the spec. Expect to see some work done around push rules (which have historically been rather complicated and fiddly...) and notifications in the days to come.
I remember this MSC fondly. It was originally born out of MSC3489's need to allow any user in the room to send m.beacon_info state events. This can easily be achieved today by lowering the required power level of m.beacon_info to the default user level. However, you then run into the issue of any user being able to edit any other user's m.beacon_info event!
Thus this MSC attempts to modify the state events permission model so that users can "own" certain state events that they send. We already somewhat have this functionality - if you put your Matrix ID as the state ID for any state event, only you or users with a power level higher than you can edit it.
Sadly this little trick (which we use for m.room.member events) doesn't work in the case of live location sharing, as the feature demands the ability to share location from multiple devices at once. Hence, trying to send two m.beacon_info events with the same state key would overwrite each other.
This MSC attempts to expand the functionality by modifying the definition so that a user "owns" a state event if the state key starts with their Matrix ID. Problem solved... for the most part!
Do check out the MSC if you have some use cases in mind that would benefit from something like this.
Since the last few official Matrix holiday updates didn't mention as many of the cool community projects as I would have liked, I tried to work with the community to publish a community side review of 2022 as well as possibly some small teasers of what 2023 will bring. There are a lot of very varied updates, since everyone seems to have tackled the challenge differently, but I hope you you enjoy the result as much as I did: https://blog.neko.dev/posts/matrix-year-in-review-2022.html
A few days later we also published the same blog post on matrix.org, with a few typo fixes and cleanups: https://matrix.org/blog/2023/01/03/matrix-community-year-in-review-2022
This was a bit shot notice, so I would like to extend my gratitude to everyone who contributed and took some time in probably one of the busiest periods in a year! For the same reason, I hope you can excuse if one of your favourite projects is missing. If you have anything that is sorely missing, feel free to reach out in #year-in-2022:neko.dev and maybe I can amend the blog post.
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.
After a lull from the holiday period, work has continued on different parts of the spec. MSC3706 has merged, which furthers the spec side of the work to make joining rooms faster in Matrix (see MSC3902 for the overview).
MSC3938 has also been merged to the spec. The proposal removes a deprecated keyId field and cleans up the endpoint by disallowing trailing slashes.
Sliding Sync (MSC3575) is the next generation of sync - how Matrix clients receive new data from their homeserver. The spec side of the feature has been designed to be modular, with different extensions of spec provided different functionality. MSC3885 is one of those extensions, and defines how To-Device Messages (how different user devices talk directly to each other) would be requested by a Matrix client from the homeserver.
This proposal doesn't appear to have had too much review from the community yet - so feel free to check it out if faster Matrix clients appeal to you!
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.
Both new MSCs this week are from @uhoreg, and look pretty great from a spec polish perspective (I've been a fan with doing away of public device names for ages). Check them out!
Otherwise, MSC3898 (Native Matrix VoIP signalling) received some review and attention this week.
This MSC would allow users to actually delete account data they've set 🎉 Currently you cannot delete top-level keys from your account data, only remove their content.
Deleted account data items will come down /sync as having their content updated to {}, which clients that implement MSC3391 will take to mean that the account data item has been deleted. Clients that don't implement MSC3391 will store the content as {}, which commonly means an unused account data item anyhow.
Yours truly is currently writing an implementation for this in Synapse, and so far implementing the spec as written seems sound!
It's Friday which means it's time to talk about the newest Synapse release, v1.73.0! A few details:
Please note that this version removes legacy Prometheus metric names entirely. This also means that the enable_legacy_metrics configuration option has been removed; it will no longer be possible to re-enable the legacy metric names.
If you use metrics and have not yet updated your Grafana dashboard(s), Prometheus console(s) or alerting rule(s), please consider doing so when upgrading to this version.
In addition, a few notable features and bugfixes are:
Move MSC3030 /timestamp_to_event endpoints to stable v1 location (/_matrix/client/v1/rooms/<roomID>/timestamp_to_event?ts=<timestamp>&dir=<direction>, /_matrix/federation/v1/timestamp_to_event/<roomID>?ts=<timestamp>&dir=<direction>).
Reduce database load of Client-Server endpoints which return bundled aggregations.
Fix a long-standing bug where paginating from the start of a room did not work. Contributed by @gnunicorn.
Fix a bug introduced in Synapse 0.9 where Synapse would fail to fetch server keys whose IDs contain a forward slash
plus much more! You can read more about this release here: https://matrix.org/blog/posts.
So... some people are distracting me by asking me to play Valheim all the time since Mistlands was in public beta (it is released now). To make that easier to synchronize, especially if not everyone can be online all the time, I wrote a small bridge: https://nheko.im/nheko-reborn/valheimmatrix
Your own messages are
bridged from Valheim to Matrix, while other peoples messages are bridged
(privately) from Matrix to Valheim. This prevents loops and does nice puppeting,
but it means everyone needs to run their own bridge. It also means you can see
other peoples messages on Matrix, as long as they have the mod enabled, even if
you are not signed in yourself.
It is a very hacky experiment, but it works, so... why not show it off? Definitely check out the game, it is great!
We've also been plugging along on less visible changes during this time like bug-fixes for bridging DM's and fleshing out more of the bridge scenarios like leaving or deleting a room and bans to ensure things stay in sync. We also started bridging private conversations to Matrix behind the scenes back in February so we have a break-away point-in-time to import back from when we do the massive history import to backfill everything. Please note, that you still can't access these private rooms on Matrix but this will come later either in the form of inviting MXID's from the Gitter side or when we give access to the gitter.im homeserver itself to self-manage from that side.
Apart from playing Valheim, I at least also did some productive things! (Apart from everyone else who has been helping squashing bugs and jugendhackt of course.)
Nheko now supports MSC3664. Support for this is automatically enabled if it is enabled server side. This allows you to get notifications for events that relate to another event. For example you might want to get notifications for a reply to one of your messages. So you need to check if the replied to event was sent by you. Similar things can be done for relations like "notify me for reactions to my posts in rooms with less than 20 users".
By default only notifications for replies are enabled. You might not notice a difference, since by default you get notified for them because the fallback includes your username, but not all bridges implement that correctly and for me the reply fallback has been one of the biggest sources of bugs, so I'd like to get rid of it long term. (Also some users disable username mentions, because their name is too generic to be useful, in which case this can help as well since it actually checks the sender.)
Threads has made great progress and is nearly ready for release into the wild! There’s a few bugs remaining that we want to smash before we turn the feature on by default for all users.
Work on Element X is making great progress, we’re even looking at how to improve the iPad and desktop view for users on larger screens.
Element Android 1.5.11 has been released, it includes fixes for some crashes that had been reported via rageshake.
Threads has made great progress and is nearly ready for release into the wild! There’s a few bugs remaining that we want to smash before we turn the feature on by default for all users.
Please note the release cycle will be slightly different over the holidays!
Work has begun on Android X and fast progress is being made.
Currently we’re looking at performance on the room list and the timeline view, implementing a memory cache to handle things more efficiently.
We are skipping one release cycle over the festive holidays: all apps will receive a release on 20th December (with threads coming out of Beta!) and the following RC will come out on 10th January leading up to a release on 17th January!
Earlier this week, we have release the EFFEKTIO white paper, outlining what we are working on, why we think this matters, where we intend to head with it and what perspective we come from. We’ve published this 30-pager as a Google Doc with comments activated (if you have any feedback on it) as well as with a 2-page executive summary for the busy. You can also join us in #foyer:effektio.org if you’d like to discuss it with us.
For a couple of weeks now, we have a fresh nightly build available whenever changes have been merged within the 24 hours prior. Unfortunately the Android package, with mobile being the main target the UI has been developed for, can’t be installed as is (you need to clone and build it yourself for now), the Desktop App for Linux, Windows and Mac do give you an impression what we are after. Mind you that a) other than the chat all sections are still mainly UI mocked and b) it is still in heavy development: things break sometimes.
On the app itself, we have spent a lot of time on getting the chat right. The app’s core was upgraded to matrix-sdk 0.6+ to get the latest timeline API in, which required quite some refactoring. But allowed us to implement reactions, edits and replies. Encrypted Messages are still somewhat unreliable though. Prior to the nightly builds we’ve also taken some time to clean up the UI to give it a more polished look and make clear which things are simply not enabled yet. On the non-chat side of things, we’ve mostly worked on UI things (check out the ToDo-Sections and Pins), while we were waiting for the synapse fix on reading the timeline from the beginning, which is now released in 1.73. Happy to get back to implementing the state machines soon.
You want updates more frequently and close to when they actually happen? Join our #news:effektio.org or hang out with the devs in our #tech:effektio.org matrix room.
libolm 3.2.14 has been released. This is maintenance release. The main change was improvements in the TypeScript types. There were also some improvements in the Python packaging, which should mean that the pre-built Python package for Linux is compatible with more distributions. Unfortunately, there are some issues with the i686 and aarch64 Linux builds, meaning that those packages are not currently available for the current version. However, if the previous version works for you, there is no reason to upgrade. We are investigating the issue, and may provide new packages later.
I am building an Matrix SDK in Elm but I've never created or published a library before. This is a practice library to see what I can expect. You can install the library using
elm install noordstar/elm-matrix-webhooks
And you can send a webhook message using a function like this:
import Matrix.Webhooks as Hook
send : String -> Cmd msg
send = Hook.sendMessage toMsg webhook
-- send "Hi TWIM!"
-- send "I support **Markdown!**"
-- send "That's cool, isn't it?"
There is currently no room for this library. Just contact me @bram:noordstar.me for the library or visit #matrix-webhook:tetaneutral.net for questions about the Webhook API.
The latter came up when investigating, whether we could use sanakirja, the pijul database backend, as a multi-process crypto store backend for mobile. This investigation is still on-going.
Further than an investigation is the uniffi async support. After completing the Python backend, Swift is also passing all tests now. Additional Docs should clarify most questions. We are as excited about this as the Mozillians seem to be. Next up: Kotlin backend.
👉 Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.
I built a ChatGPT bot for Matrix! It does exactly what you think it does: you send a message, and ChatGPT will respond. It's very cool being able to talk to ChatGPT while on a mobile device.
It sends read receipts when messages are received by the bot, and the bot sends a typing indicator as ChatGPT is "thinking" 😀
It currently only works in unencrypted chats. I haven't managed to get encryption using matrix-bot-sdk working reliably yet. If it's meant to be working, tips or PRs are very welcome! I've really enjoyed tinkering withmatrix-bot-sdk on a few projects so far.
Keep in mind any text you send it will go to the closed source servers of OpenAI, and it is unlikely to stay free forever.
The Matrix.org Foundation has a stand at FOSDEM! Come in Brussels on February 4 and 5 to meet us in person, see the fun stuff we're doing, show us the nice things you are doing and grab cool merch.
We have also received proposals for a little more than a full day of devroom! We only have half a day of in-person devroom. We will (try to?) broadcast the in-person devroom in the Matrix room of course, and then the conference bot will schedule the talks we couldn't fit in the in-person slots.
Matrix Community Summit Berlin 2022 Podcast (German)
Another week, another episode, another community member interviewed.
Meet Robert, who spoke with Christian, about creating a CMS system on top of matrix.
episode link: https://spotifyanchor-web.app.link/e/p8aiO8ABCvb
rss feed: https://anchor.fm/s/cdb34188/podcast/rss
I hope you enjoy this week's interview and learn what other people in the community are up to.
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.
This episode of Open Tech Will Save Us was a special on Moderation. Our guest was Jim from the Matrix.org Foundation's Trust & Safety Team.
Can moderation be automated? Can it be apolitical? How does it scale? Are decentralised systems inherently more insecure than centrlised ones? Let's find out!
You can now officially join the Matrix Foundation as an organisational or individual member in order to sustainably support core Matrix development, help steer the direction of the protocol and how best to fund it. In order to run the Governing Board and the overall work of the Foundation, we are also hiring an Executive Director.
A lot of this week was spent on implementation by the SCT, hence little movement in the bullet points above. However, outside of label changes, we've seen lots of progress on Extensible Events work from Travis as we continue to lay the groundwork for the IETF MIMI initiative.
We also continue to receive lots of fixes to the spec text itself via PRs to https://github.com/matrix-org/matrix-spec. Shout outs to zecakeh, dylhack, and uhoreg for their contributions!
This MSC aims to provide a solution to remotely toggling do-not-disturb across your various Matrix clients without needing to set it on each device manually. It does so by using account data which is synced to each client. Upon a client seeing data intended for them, they will silence notifications locally until told to do so otherwise (either remotely or by the user interacting with the client directly).
Quite a neat idea, and adds more powerful functionality to the "device manager" of a client. Also handy if your other clients are things like embedded systems!
As we barrel towards the end of the year, the Synapse team is hard at work
making Synapse faster, more stable and filled with features! This week we released v1.73.0rc2. Notable work
includes a significant speed-up to the /messages path. In addition you can find:
Improved DB performance by reducing amount of data that gets read in device_lists_changes_in_room.
Support for handling avatar in SSO login. Contributed by @ashfame
Unstable support for an Extensible Events room version (org.matrix.msc1767.10) via MSC1767, MSC3931, MSC3932,
and MSC3933.
A bugfix for a long-standing bug where the List media admin API would fail when processing an image with broken
thumbnail information
and a whole host of other bugfixes, features and improvements. Head over to https://github.com/matrix-org/synapse/releases
to check it out.
It's been a while since the last TWIM update, but the Slack bridge has been steadily improving! See https://github.com/matrix-org/matrix-appservice-slack/releases/ for a slew of updates.
Highlights include:
DMs are now consistently assigned with the name & avatar of the Slack user you're chatting with.
Display names of Slack users should be kept up-to-date more reliably.
Support is added for bridging Slack threads with MSC3440 m.thread relations.
The usability of bridge bot admin commands (like whoami and link) has been improved.
Some cases of inbound Slack messages being dropped have been fixed.
Hookshot 2.5.0 is now ready for your eyes and your processors!
This week we bring you the very last (all fingers being crossed) hookshot release not to support e2ee encryption. Our resident expert is busy working away on supporting it and is a couple of bugfixes away from providing it to you all (https://github.com/matrix-org/matrix-hookshot/pull/299#issuecomment-1327124799).
In the meantime, this release was so good we couldn't keep it from you any longer. This release is packed with quality of life improvements, and general bugfixes / stability. Deploy away!
The highlights are:
GitHub assign command now automatically chooses the top issue and/or authenticated user if not provided.
The RSS feed connection no longer feels the need to spam you when GitHub fails to respond within 10s. It now waits for 30s.
Hookshot now supports creating GitLab connections without automatically provisioning a webhook. When this happens, the bot will tell you to talk to your admin to setup the webhook manually.
SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.
Version 1.5.8.sc62 of SchildiChat-Android got released this week, which adds a few new interesting features on top of Element:
Reworked reply rendering, to follow the rich replies specification. This improves the following:
Update the replied-to message in case the original message gets edited or deleted
Fix replies edited on desktop not being shown as replies on Android
Fix replies edited on Android being shown on Desktop with the replied-to event twice
Fix some weird rendering issues, like lists in a reply being completely broken
Nicer design, using the original sender's color, and a maximum height for the replied-to event
Render the replied-to event also for media replies, for example when the mautrix-telegram bridge sends an image reply
In the future, this will also allow us to render replied-to images instead of just writing "Image" in there, but this one is still on the TODO-list since I didn't want to delay a release further.
We now allow sending all kinds of room-specific or account-specific global custom emotes as per MSC2545 (but you still need to configure them with a different client before sending).
For those about to ask if I'll upstream these changes to Element: I'm currently not planning to do so, but you are free to pick my changes yourself and create a PR. For rich replies, see also here.
Help us test Threads on Wednesday December 7th from 15:00 to 16:30 GMT! We need the most help testing on Android and iOS but if you can help test on Web/Desktop that's cool too! And don't worry if you can't make it, we'll have folks around most of the day so please come out and help us test whenever you can manage. See you in the community testing room at #element-community-testing:matrix.org!
📬 Useful feature time: The spaces button is now badged whenever you have unread messages or invites that aren’t visible in the current space.
📝 The Rich Text Editor has seen more bugs and edge cases fixed and support for links and lists is underway.
🏗️ On the ElementX side we have been working on a Reactions picker, the timeline rewrite is almost finished, work on a split view layout for iPad continues and we’re finishing up a shiny new Room Details screen.
Element Android 1.5.10 has been released for testers on the PlayStore (still in review by Google at this time). It should be pushed to production next week. It includes a new full screen mode for the Rich Text Editor and lots of other changes. The full changelog is here.
The team is making progress to integrate the Crypto Rust SDK in the main project and generate the application ElementR.
On Android Element X, which is the new Android app written with Jetpack Compose on top of the Matrix Rust SDK, it is now possible to edit events and to reply to events. Html is also now rendered in the timeline. We will define in the coming weeks what will be the plan for the future regarding this project.
Announcing Feline Matrix Assistant. This is a PowerShell 7 cross platform script that aims to gather a few somewhat common matrix tasks in one place with a somewhat user friendly interface.
It was designed to enable users on Windows to easily access things like custom powerlevel rooms and manual room upgrades that normally require using Linux to run bash scripts if one does not want to figure out how to make the web requests using their preferred method themselves.
One of the other reasons i made this is just because i wanted to get more familiar the CS API and because i needed it my self because im currently a Windows user.
The Third Room team have been invited to present Third Room at SIGGRAPH Asia 2022 next week! https://sa2022.siggraph.org/en/presentation/?id=realcur_102&sess=sess143
Dept of SDKs and Frameworks 🧰
Yet Another TypeScript Bot SDK
As named per the author, don't blame Thib for this name!
Why? As an alternative to matrix-bot-sdk, this library will be strongly typed with simplicity in mind to make sure there is no overhead to writing the perfect Matrix bot.
This library also focuses on having browser support and no dependencies around NodeJS (and least amount of dependencies in general)
AppService functionality will be shipped in a separate package as an extension of this base package.
There is plenty of dependency injection for: Logging, how HTTP comms are done, and caching (come ask about the Redis cache layer!)
Come join our Matrix room to help this library grow and give input!
Trixnity 3.0.0 is released. This release contains all changes of the beta versions. We additionally fixed two bugs regarding encrypted edited messages.
I'm currently working on vodozemac integration. For this I implemented uniffi-kotlin-multiplatform-bindings to bridge Rust and Kotlin Multiplatform.
The last few weeks of Sliding Sync in the various mobile clients is showing its fruits: Sliding Sync offline caching and session recovery was merged this week, giving you the latest state of your sliding sync in milliseconds without ever having touched the network now. You need to activate it via a setting on the SlidingSyncBuilder - FFI is exposed as well. This PR also adds recovery when the server rejected our request upon a failing position, indicating our session was reset. Previously, you needed to reconstruct the entire sliding-sync with all its state yourself, now this does it internally and transparently for the API user. Additionally, we merged a fix for invited rooms, which caused a panic on FFI usage, and have one other fix to the sliding-sync state post cache coming up.
Talking about fixes, the retry code path had a bug, which caused retries even when the API clearly stated we needed to change request, which is fixed now, and the memory store won't continue to keep all media cached anymore. More fixes are being pulled out of the demo branch and coming up as PRs next week.
We can also report amazing news from the Async-UniFFI-front: we have the first async-uniffi-swift code running now. Exciting times!
👉 ️ Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.
Introducing a new way to run Synapse on top of Kubernetes !
The current capabilities of the Synapse Operator:
Deploy Synapse: the operator can generate a default homeserver.yaml, or it can work with a custom homeserver.yaml, provided by the user.
Deploy the Heisenbridge and the mautrix-signal bridge: the operator automatically (re)configures Synapse to add the corresponding app_services.
Deploy a PostgreSQL database for Synapse (depends on the postgres-operator).
Once the operator is deployed, the Synapse resource becomes available. Deploying a basic instance goes as simple as:
$ cat << EOF > synapse.yaml
apiVersion: synapse.opdev.io/v1alpha1
kind: Synapse
metadata:
name: my-synapse
spec:
homeserver:
values:
serverName: example.com
reportStats: true
EOF
$ kubectl apply -f synapse.yaml
synapse.synapse.opdev.io/my-synapse created
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-synapse-84d56d54df-c699k 1/1 Running 0 63s
The operator takes care of the deployment and lifecycle management of the Synapse instance. Similarly, the Heisenbridge and MautrixSignal resources can also be deployed alongside Synapse and are managed by the operator.
This operator is written in Go. To know more about the project, please visit https://github.com/opdev/synapse-operator, there are explanations on how to deploy the operator, and examples demonstrating the main features. Or ping me on Matrix if you want to have a chat about it ! I'd love to collect some feedbacks !
The clock is ticking! We're already in December, only a few days left to submit your talk proposal for our in-person Matrix devroom at FOSDEM. All the details to answer the call are in our FOSDEM 2023 CfP
Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.
Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).
Matrix Community Summit Berlin 2022 Podcast (English episode)
Meet Charles (cvwright), Project creator and Lead engineer of Circles. He and I spoke about how he got to know about Matrix, how encryption became more common on the Internet and how he started Circles – an app, built with Matrix, to privately connect with family and friends.
I hope you enjoy this week's interview and learn what other people in the community are up to.
From next week on we're back to episodes in German – but another English episode is on its way!
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.