matrix-rust-sdk
Synapse
Our great sponsors
matrix-rust-sdk | Synapse | |
---|---|---|
13 | 367 | |
1,056 | 11,720 | |
5.3% | - | |
9.9 | 9.8 | |
6 days ago | 4 months ago | |
Rust | Python | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
matrix-rust-sdk
-
Flutter seems to be having bad times internally
Yep, a good example is the element X rewrite
They use Jetpack on Android
https://github.com/vector-im/element-x-android
And SwiftUI on iOS
https://github.com/vector-im/element-x-ios
But both use the same underlying Matrix Rust SDK
https://github.com/matrix-org/matrix-rust-sdk
So they share the core part of the app between platforms, but everything user facing is native
- Crux: Cross-platform app development in Rust
-
I made a crate: eyeball – Add observability to your Rust types!
The one place eyebal is already being used is matrix-rust-sdk, mostly for bits of the API that act as a model for specific UI parts in apps built on top of it. A part of those APIs is also using observable vectors from eyeball-im, which I didn't mention initially because it's not as well-documented and polished.
-
Collaborative WYSIWYG document editor built-on matrix-rust-sdk and matrix-rich-text-editor?
Hello everyone, I am finally making it to all of the great talks about Matrix from FOSDEM 23, and one thing that seemed like an obvious thing that could be built on some of the new projects works (matrix-rich-text-editor, matrix-rust-sdk) is a collaborative (multi-user, live edits) document tool built ontop of rust. That said, I haven't seen any project doing this yet. Does anyone know of one?
-
Matrix 2.0 — Matthew Hodgson talks about Rust in Element client, Rust SDK, IETF MLS, MIMI and more
Another important piece of the ecosystem for which Rust was used is the SDK. This new SDK was used to write the newest mobile client - Element X. The current Element client will also see its cryptography implementation being changed from Javascript to Rust, this was also made possible by the new Rust based SDK.
-
Some key-value storage engines in Rust
Let's say I'll switch as soon as they start using Sanakirja. They're partially right in their analysis of Sanakirja, but their comments are more about the lack of expressiveness of the unsafe keyword in Rust than about Sanakirja itself. I'm preparing a blog post about my dream version of unsafe.
-
IRCv3 2022 Spec round-up
>Well I care, that does not mean that you have to care.
The point I'm making is that the protocol being implement-able by yourself or grabbing a lib from someone else is moot, since you will 9 times out of 10 use a library.
>Again, look at the lack of client diversity for Matrix and tell me that you do not think that there is at least some correlation in terms of the complexity of the protocol.
The problem is not client diversity for Matrix - there's plenty of them. The problem is that Matrix is more than displaying a log on a screen, and most of the clients are frankly abysmal and could use a trained UI/UX owner.
>last I checked it meant using either Python or Go
The Rust SDK has worked well for me, although I can't state how close it is to Python or Go's libs. That said, I know I'm certainly not the only one using it.
The Rust lib could be wrapped into other languages (e.g, Ruby) if there's not a good SDK for that language. I don't really consider this to be an issue, especially considering the Rust SDK is maintained by the Matrix org themselves.
https://github.com/matrix-org/matrix-rust-sdk
>Add to this that the more mandatory features you have and keep adding
Don't maintain your own bespoke library and you won't have to. :)
>But I am not going to behave as if images, reactions, code blocks, threads, end-to-end encryption, voice calls, video calls, etc. do not come at a cost.
They do come at a cost, but that's the price of admission for what people expect from modern chat systems. I'd rather live in 2022 than 2004, and I grew up on IRC.
-
Back to School: Free Rust Courses
I'm not entirely sure what I plan to use Rust with at the moment, however my first project so far has been to write a Matrix bot using the matrix-rust-sdk library :)
-
GTK4 Matrix Client
Just for everyone else reading, the modern Matrix Rust stack referred to here is the matrix-rust-sdk: https://github.com/matrix-org/matrix-rust-sdk
-
E2EE vulnerability in multiple Matrix clients
The current way we're approaching this is to split the reference E2EE implementation into its own rust crate (https://github.com/matrix-org/matrix-rust-sdk/tree/master/ma...) which can be used with any SDK (e.g. we're almost finished embedding it into the Kotlin matrix-android-sdk2 client)
Separately, there's also the overall matrix-rust-sdk https://github.com/matrix-org/matrix-rust-sdk for clients to use as a "full fat" Matrix client SDK - as used by Fractal Next (https://gitlab.gnome.org/GNOME/fractal/-/tree/fractal-next) etc. We might end up using this in Element too in future (especially in Element iOS, where a Swift UI + matrix-rust-sdk backend could be quite a cute next generation architecture).
So while the first generation reference Matrix SDKs (matrix-js-sdk, matrix-ios-sdk and matrix-android-sdk) were completely independent implementations, each with their own bugs and increased audit surface, we're hoping that matrix-rust-sdk will simplify this a lot in future.
Synapse
-
Organizing OpenStreetMap Mapping Parties
What are you thinking of here? Synapse has supported purging room history since 2016: https://github.com/matrix-org/synapse/pull/911, and configurable data retention since 2019: https://github.com/matrix-org/synapse/pull/5815.
Meanwhile, Matrix has never needed the full room history to be synchronised - when a server joins a room, it typically only grabs the last 20 messages. (It does needs to grab all the key-value state about the room, although these days that happens gradually in the background).
If you're wondering why Matrix implementations are often greedy on disk space, it's because they typically cache the key-value state aggressively (storing a snapshot of it for the room on a regular basis). However, that's just an implementation quirk; folks could absolutely come up with fancier datastructures to store it more efficiently; it's just not got to the top of anyone's todo list yet - things like performance and UX are considered much more important than disk usage right now.
-
GrapheneOS is moving off Matrix
some context re the Matrix isses, long history apparently: https://github.com/matrix-org/synapse/issues/14481#issuecomm...
-
Non-profit Matrix.org Foundation seems to be moving funds to for-profit Element
Why not Matrix? Here's one reason: it has incredibly hard-to-debug edge cases, and plenty of bugs. One of my favourites is the one where people are kicked out of your room at random, which was reported a year ago[0]. It wasn't fixed, however, because the head of the Matrix foundation (Matthew) presumably didn't like the issue being posted on Twitter.
This is honestly really disappointing behaviour from a platform owner.
[0]: https://github.com/matrix-org/synapse/issues/14481
-
The Future of Synapse and Dendrite
> That doesn't make this situation any less bad to the rest of the community.
How is the community suffering here? Let's say Element adds a bunch of baller stuff to their versions over the next few months and then closes the source. Can't the community just fork the last AGPL version? You might say, "well then no one can take the AGPL fork and make their own closed-source business", but do you want them to? Even if you do, they still can with the existing Apache-licensed version, just like Element is doing right now.
You're arguing that Element will lose a lot of contributions, but TFA points out that despite being super open, the vast majority of contributions are still made by Element employees (which seems to be true [0]). It's not the case that Element is looking to monetize the (small) contributions of others, it is the case that others are looking to monetize the (huge) contributions of Element.
And besides, aren't the MSCs the core of Matrix? It's already super possible to build your own compliant client and server.
The situation is that Element needs money to keep developing the ecosystem. It would be cool if there were a big network of donors and contributions, but there isn't. You're essentially saying, "that's fine, go out of business then, and the community will keep developing the ecosystem", but that's not happening now, and it can still happen anyway with the Apache-licensed versions, which again people can still contribute to.
[0]: https://github.com/matrix-org/synapse/graphs/contributors
- Synapse v1.95.0 Released
- Matrix Synapse how use python scripts?
- Synapse v1.91.2 Released
- Synapse v1.89.0 is out
- Synapse v1.88.0 is out
- Synapse v1.87.0 (Matrix Server) Released
What are some alternatives?
conduit
dendrite - Dendrite is a second-generation Matrix homeserver written in Go!
threema-android - Threema App for Android.
element-android - A glossy Matrix collaboration client for Android.
Rocket.Chat - The communications platform that puts data protection first.
gomuks - A terminal based Matrix client written in Go.
Jitsi Meet - Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
weechat-matrix-rs - Rust rewrite of the python weechat-matrix script.
Mattermost - Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
Ruma - A set of Rust crates for interacting with the Matrix chat network.
matrix-docker-ansible-deploy - 🐳 Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker