7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 1 | <h1 align="center">Matrix Rust SDK</h1> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 2 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 3 | <div align="center"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 4 | <em>Your all-in-one toolkit for creating Matrix clients with Rust, from simple bots to full-featured apps.</em> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 5 | <br /> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 6 | <img src="contrib/logo.svg"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 7 | <hr /> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 8 | <a href="https://github.com/matrix-org/matrix-rust-sdk/releases"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 9 | <img src="https://img.shields.io/github/v/release/matrix-org/matrix-rust-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=GitHub&logoColor=white"></a> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 10 | <a href="https://crates.io/crates/matrix-sdk/"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 11 | <img src="https://img.shields.io/crates/v/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 12 | <a href="https://codecov.io/gh/matrix-org/matrix-rust-sdk"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 13 | <img src="https://img.shields.io/codecov/c/gh/matrix-org/matrix-rust-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Codecov&logoColor=white"></a> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 14 | <br /> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 15 | <a href="https://docs.rs/matrix-sdk/"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 16 | <img src="https://img.shields.io/docsrs/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 17 | <a href="https://github.com/matrix-org/matrix-rust-sdk/actions/workflows/ci.yml"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 18 | <img src="https://img.shields.io/github/actions/workflow/status/matrix-org/matrix-rust-sdk/ci.yml?style=flat&labelColor=1C2E27&color=66845F&logo=GitHub%20Actions&logoColor=white"></a> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 19 | </div> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 20 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 21 | <div align="center"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 22 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 23 | The Matrix Rust SDK is a collection of libraries that make it easier to build |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 24 | [Matrix] clients in [Rust]. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 25 | <br /> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 26 | <br /> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 27 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 28 | <picture> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 29 | <source srcset="contrib/element-logo-light.png" media="(prefers-color-scheme: dark)"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 30 | <source srcset="contrib/element-logo-dark.png" media="(prefers-color-scheme: light)"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 31 | <img src="contrib/element-logo-fallback.png" alt="Element logo"> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 32 | </picture> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 33 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 34 | <br /> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 35 | <br /> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 36 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 37 | Development of the SDK is proudly sponsored and maintained by |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 38 | [Element](https://element.io). Element uses the SDK in their next-generation |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 39 | mobile apps Element X on [iOS](https://github.com/element-hq/element-x-ios) and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 40 | [Android](https://github.com/element-hq/element-x-android) and has plans to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 41 | introduce it to the web and desktop clients as well. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 42 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 43 | The SDK is also the basis for multiple Matrix projects and we welcome |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 44 | contributions from all. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 45 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 46 | </div> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 47 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 48 | ## Purpose |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 49 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 50 | The SDK takes care of the low-level details like encryption, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 51 | syncing, and room state, so you can focus on your app's logic and UI. Whether |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 52 | you're writing a small bot, a desktop client, or something in between, the SDK |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 53 | is designed to be flexible, async-friendly, and ready to use out of the box. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 54 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 55 | ## Project structure |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 56 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 57 | The Matrix Rust SDK is made up of several crates that build on top of each |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 58 | other. The following crates are expected to be usable as direct dependencies: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 59 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 60 | - [matrix-sdk-ui](https://docs.rs/matrix-sdk-ui/latest/matrix_sdk_ui/) – A |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 61 | high-level client library that makes it easy to build full-featured UI clients |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 62 | with minimal setup. Check out our reference client, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 63 | [multiverse](https://github.com/matrix-org/matrix-rust-sdk/tree/main/labs/multiverse), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 64 | for an example. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 65 | - [matrix-sdk](https://docs.rs/matrix-sdk/latest/matrix_sdk/) – A mid-level |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 66 | client library, ideal for building bots, custom clients, or higher-level |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 67 | abstractions. You can find example usage in the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 68 | [examples directory](https://github.com/matrix-org/matrix-rust-sdk/tree/main/examples). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 69 | - [matrix-sdk-crypto](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 70 | – A standalone encryption state machine with no network I/O, providing |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 71 | end-to-end encryption support for Matrix clients and libraries. See the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 72 | [crypto tutorial](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/tutorial/index.html) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 73 | for a step-by-step introduction. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 74 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 75 | All other crates are effectively internal-only and only structured as crates for |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 76 | organizational purposes and to improve compilation times. Direct usage of them |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 77 | is discouraged. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 78 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 79 | ## Status |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 80 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 81 | The library is considered production ready and backs multiple client |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 82 | implementations such as Element X |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 83 | [[1]](https://github.com/element-hq/element-x-ios) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 84 | [[2]](https://github.com/element-hq/element-x-android), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 85 | [Fractal](https://gitlab.gnome.org/World/fractal) and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 86 | [iamb](https://github.com/ulyssa/iamb). Client developers should feel confident |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 87 | to build upon it. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 88 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 89 | ## Bindings |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 90 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 91 | The higher-level crates of the Matrix Rust SDK can be embedded in other |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 92 | environments such as Swift, Kotlin, JavaScript, and Node.js. Check out the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 93 | [bindings/](./bindings/) directory to learn more about how to integrate the SDK |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 94 | into your language of choice. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 95 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 96 | ## License |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 97 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 98 | [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 99 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 100 | [Matrix]: https://matrix.org/ |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 101 | [Rust]: https://www.rust-lang.org/ |