matrix-rust-sdk VS Synapse

Compare matrix-rust-sdk vs Synapse and see what are their differences.

matrix-rust-sdk

Matrix Client-Server SDK for Rust (by matrix-org)

Synapse

Synapse: Matrix homeserver written in Python/Twisted. (by matrix-org)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
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
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of matrix-rust-sdk. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-23.
  • Flutter seems to be having bad times internally
    5 projects | news.ycombinator.com | 23 Nov 2023
    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
    7 projects | news.ycombinator.com | 28 Sep 2023
  • I made a crate: eyeball – Add observability to your Rust types!
    1 project | /r/rust | 15 Mar 2023
    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?
    2 projects | /r/matrixdotorg | 15 Feb 2023
    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
    7 projects | /r/rust | 7 Feb 2023
    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
    12 projects | /r/rust | 27 Dec 2022
    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
    8 projects | news.ycombinator.com | 20 Nov 2022
    >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
    7 projects | /r/rust | 27 Aug 2022
    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
    6 projects | news.ycombinator.com | 10 Apr 2022
    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
    8 projects | news.ycombinator.com | 13 Sep 2021
    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

Posts with mentions or reviews of Synapse. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-12.
  • Organizing OpenStreetMap Mapping Parties
    8 projects | news.ycombinator.com | 12 Apr 2024
    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
    1 project | news.ycombinator.com | 21 Nov 2023
    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
    7 projects | news.ycombinator.com | 19 Nov 2023
    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
    1 project | news.ycombinator.com | 6 Nov 2023
    > 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
    1 project | /r/Boiling_Steam | 26 Oct 2023
  • Matrix Synapse how use python scripts?
    2 projects | /r/selfhosted | 6 Oct 2023
  • Synapse v1.91.2 Released
    1 project | /r/Boiling_Steam | 8 Sep 2023
  • Synapse v1.89.0 is out
    1 project | /r/Boiling_Steam | 3 Aug 2023
  • Synapse v1.88.0 is out
    1 project | /r/Boiling_Steam | 20 Jul 2023
  • Synapse v1.87.0 (Matrix Server) Released
    1 project | /r/Boiling_Steam | 5 Jul 2023

What are some alternatives?

When comparing matrix-rust-sdk and Synapse you can also consider the following projects:

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