atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git

Blame: README.md

7ff8adafe9e4atagen2026-10-22 12:30 UTC1
<h1 align="center">Matrix Rust SDK</h1>
7ff8adafe9e4atagen2026-10-22 12:30 UTC2
7ff8adafe9e4atagen2026-10-22 12:30 UTC3
<div align="center">
7ff8adafe9e4atagen2026-10-22 12:30 UTC4
  <em>Your all-in-one toolkit for creating Matrix clients with Rust, from simple bots to full-featured apps.</em>
7ff8adafe9e4atagen2026-10-22 12:30 UTC5
  <br />
7ff8adafe9e4atagen2026-10-22 12:30 UTC6
  <img src="contrib/logo.svg">
7ff8adafe9e4atagen2026-10-22 12:30 UTC7
  <hr />
7ff8adafe9e4atagen2026-10-22 12:30 UTC8
  <a href="https://github.com/matrix-org/matrix-rust-sdk/releases">
7ff8adafe9e4atagen2026-10-22 12:30 UTC9
    <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>
7ff8adafe9e4atagen2026-10-22 12:30 UTC10
  <a href="https://crates.io/crates/matrix-sdk/">
7ff8adafe9e4atagen2026-10-22 12:30 UTC11
    <img src="https://img.shields.io/crates/v/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a>
7ff8adafe9e4atagen2026-10-22 12:30 UTC12
  <a href="https://codecov.io/gh/matrix-org/matrix-rust-sdk">
7ff8adafe9e4atagen2026-10-22 12:30 UTC13
    <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>
7ff8adafe9e4atagen2026-10-22 12:30 UTC14
  <br />
7ff8adafe9e4atagen2026-10-22 12:30 UTC15
  <a href="https://docs.rs/matrix-sdk/">
7ff8adafe9e4atagen2026-10-22 12:30 UTC16
    <img src="https://img.shields.io/docsrs/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a>
7ff8adafe9e4atagen2026-10-22 12:30 UTC17
  <a href="https://github.com/matrix-org/matrix-rust-sdk/actions/workflows/ci.yml">
7ff8adafe9e4atagen2026-10-22 12:30 UTC18
    <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>
7ff8adafe9e4atagen2026-10-22 12:30 UTC19
</div>
7ff8adafe9e4atagen2026-10-22 12:30 UTC20
7ff8adafe9e4atagen2026-10-22 12:30 UTC21
<div align="center">
7ff8adafe9e4atagen2026-10-22 12:30 UTC22
7ff8adafe9e4atagen2026-10-22 12:30 UTC23
The Matrix Rust SDK is a collection of libraries that make it easier to build
7ff8adafe9e4atagen2026-10-22 12:30 UTC24
[Matrix] clients in [Rust].
7ff8adafe9e4atagen2026-10-22 12:30 UTC25
<br />
7ff8adafe9e4atagen2026-10-22 12:30 UTC26
<br />
7ff8adafe9e4atagen2026-10-22 12:30 UTC27
7ff8adafe9e4atagen2026-10-22 12:30 UTC28
<picture>
7ff8adafe9e4atagen2026-10-22 12:30 UTC29
  <source srcset="contrib/element-logo-light.png" media="(prefers-color-scheme: dark)">
7ff8adafe9e4atagen2026-10-22 12:30 UTC30
  <source srcset="contrib/element-logo-dark.png" media="(prefers-color-scheme: light)">
7ff8adafe9e4atagen2026-10-22 12:30 UTC31
  <img src="contrib/element-logo-fallback.png" alt="Element logo">
7ff8adafe9e4atagen2026-10-22 12:30 UTC32
</picture>
7ff8adafe9e4atagen2026-10-22 12:30 UTC33
7ff8adafe9e4atagen2026-10-22 12:30 UTC34
<br />
7ff8adafe9e4atagen2026-10-22 12:30 UTC35
<br />
7ff8adafe9e4atagen2026-10-22 12:30 UTC36
7ff8adafe9e4atagen2026-10-22 12:30 UTC37
Development of the SDK is proudly sponsored and maintained by
7ff8adafe9e4atagen2026-10-22 12:30 UTC38
[Element](https://element.io). Element uses the SDK in their next-generation
7ff8adafe9e4atagen2026-10-22 12:30 UTC39
mobile apps Element X on [iOS](https://github.com/element-hq/element-x-ios) and
7ff8adafe9e4atagen2026-10-22 12:30 UTC40
[Android](https://github.com/element-hq/element-x-android) and has plans to
7ff8adafe9e4atagen2026-10-22 12:30 UTC41
introduce it to the web and desktop clients as well.
7ff8adafe9e4atagen2026-10-22 12:30 UTC42
7ff8adafe9e4atagen2026-10-22 12:30 UTC43
The SDK is also the basis for multiple Matrix projects and we welcome
7ff8adafe9e4atagen2026-10-22 12:30 UTC44
contributions from all.
7ff8adafe9e4atagen2026-10-22 12:30 UTC45
7ff8adafe9e4atagen2026-10-22 12:30 UTC46
</div>
7ff8adafe9e4atagen2026-10-22 12:30 UTC47
7ff8adafe9e4atagen2026-10-22 12:30 UTC48
## Purpose
7ff8adafe9e4atagen2026-10-22 12:30 UTC49
7ff8adafe9e4atagen2026-10-22 12:30 UTC50
The SDK takes care of the low-level details like encryption,
7ff8adafe9e4atagen2026-10-22 12:30 UTC51
syncing, and room state, so you can focus on your app's logic and UI. Whether
7ff8adafe9e4atagen2026-10-22 12:30 UTC52
you're writing a small bot, a desktop client, or something in between, the SDK
7ff8adafe9e4atagen2026-10-22 12:30 UTC53
is designed to be flexible, async-friendly, and ready to use out of the box.
7ff8adafe9e4atagen2026-10-22 12:30 UTC54
7ff8adafe9e4atagen2026-10-22 12:30 UTC55
## Project structure
7ff8adafe9e4atagen2026-10-22 12:30 UTC56
7ff8adafe9e4atagen2026-10-22 12:30 UTC57
The Matrix Rust SDK is made up of several crates that build on top of each
7ff8adafe9e4atagen2026-10-22 12:30 UTC58
other. The following crates are expected to be usable as direct dependencies:
7ff8adafe9e4atagen2026-10-22 12:30 UTC59
7ff8adafe9e4atagen2026-10-22 12:30 UTC60
- [matrix-sdk-ui](https://docs.rs/matrix-sdk-ui/latest/matrix_sdk_ui/) – A
7ff8adafe9e4atagen2026-10-22 12:30 UTC61
  high-level client library that makes it easy to build full-featured UI clients
7ff8adafe9e4atagen2026-10-22 12:30 UTC62
  with minimal setup. Check out our reference client,
7ff8adafe9e4atagen2026-10-22 12:30 UTC63
  [multiverse](https://github.com/matrix-org/matrix-rust-sdk/tree/main/labs/multiverse),
7ff8adafe9e4atagen2026-10-22 12:30 UTC64
  for an example.
7ff8adafe9e4atagen2026-10-22 12:30 UTC65
- [matrix-sdk](https://docs.rs/matrix-sdk/latest/matrix_sdk/) – A mid-level
7ff8adafe9e4atagen2026-10-22 12:30 UTC66
  client library, ideal for building bots, custom clients, or higher-level
7ff8adafe9e4atagen2026-10-22 12:30 UTC67
  abstractions. You can find example usage in the
7ff8adafe9e4atagen2026-10-22 12:30 UTC68
  [examples directory](https://github.com/matrix-org/matrix-rust-sdk/tree/main/examples).
7ff8adafe9e4atagen2026-10-22 12:30 UTC69
- [matrix-sdk-crypto](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/)
7ff8adafe9e4atagen2026-10-22 12:30 UTC70
  – A standalone encryption state machine with no network I/O, providing
7ff8adafe9e4atagen2026-10-22 12:30 UTC71
  end-to-end encryption support for Matrix clients and libraries. See the
7ff8adafe9e4atagen2026-10-22 12:30 UTC72
  [crypto tutorial](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/tutorial/index.html)
7ff8adafe9e4atagen2026-10-22 12:30 UTC73
  for a step-by-step introduction.
7ff8adafe9e4atagen2026-10-22 12:30 UTC74
7ff8adafe9e4atagen2026-10-22 12:30 UTC75
All other crates are effectively internal-only and only structured as crates for
7ff8adafe9e4atagen2026-10-22 12:30 UTC76
organizational purposes and to improve compilation times. Direct usage of them
7ff8adafe9e4atagen2026-10-22 12:30 UTC77
is discouraged.
7ff8adafe9e4atagen2026-10-22 12:30 UTC78
7ff8adafe9e4atagen2026-10-22 12:30 UTC79
## Status
7ff8adafe9e4atagen2026-10-22 12:30 UTC80
7ff8adafe9e4atagen2026-10-22 12:30 UTC81
The library is considered production ready and backs multiple client
7ff8adafe9e4atagen2026-10-22 12:30 UTC82
implementations such as Element X
7ff8adafe9e4atagen2026-10-22 12:30 UTC83
[[1]](https://github.com/element-hq/element-x-ios)
7ff8adafe9e4atagen2026-10-22 12:30 UTC84
[[2]](https://github.com/element-hq/element-x-android),
7ff8adafe9e4atagen2026-10-22 12:30 UTC85
[Fractal](https://gitlab.gnome.org/World/fractal) and
7ff8adafe9e4atagen2026-10-22 12:30 UTC86
[iamb](https://github.com/ulyssa/iamb). Client developers should feel confident
7ff8adafe9e4atagen2026-10-22 12:30 UTC87
to build upon it.
7ff8adafe9e4atagen2026-10-22 12:30 UTC88
7ff8adafe9e4atagen2026-10-22 12:30 UTC89
## Bindings
7ff8adafe9e4atagen2026-10-22 12:30 UTC90
7ff8adafe9e4atagen2026-10-22 12:30 UTC91
The higher-level crates of the Matrix Rust SDK can be embedded in other
7ff8adafe9e4atagen2026-10-22 12:30 UTC92
environments such as Swift, Kotlin, JavaScript, and Node.js. Check out the
7ff8adafe9e4atagen2026-10-22 12:30 UTC93
[bindings/](./bindings/) directory to learn more about how to integrate the SDK
7ff8adafe9e4atagen2026-10-22 12:30 UTC94
into your language of choice.
7ff8adafe9e4atagen2026-10-22 12:30 UTC95
7ff8adafe9e4atagen2026-10-22 12:30 UTC96
## License
7ff8adafe9e4atagen2026-10-22 12:30 UTC97
7ff8adafe9e4atagen2026-10-22 12:30 UTC98
[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)
7ff8adafe9e4atagen2026-10-22 12:30 UTC99
7ff8adafe9e4atagen2026-10-22 12:30 UTC100
[Matrix]: https://matrix.org/
7ff8adafe9e4atagen2026-10-22 12:30 UTC101
[Rust]: https://www.rust-lang.org/