https://github.com/matrix-org/matrix-rust-sdk
Matrix Client-Server SDK for Rust
https://github.com/matrix-org/matrix-rust-sdk
matrix-org rust sdk
Last synced: 8 days ago
JSON representation
Matrix Client-Server SDK for Rust
- Host: GitHub
- URL: https://github.com/matrix-org/matrix-rust-sdk
- Owner: matrix-org
- License: apache-2.0
- Created: 2020-02-21T15:47:16.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T12:25:06.000Z (14 days ago)
- Last Synced: 2025-04-02T12:42:46.387Z (14 days ago)
- Topics: matrix-org, rust, sdk
- Language: Rust
- Homepage:
- Size: 60 MB
- Stars: 1,399
- Watchers: 36
- Forks: 275
- Open Issues: 244
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-matrix - matrix-rust-sdk - A modular (SDKs / 2016)
- awesome-matrix-bots - matrix-rust-sdk (The Matrix.org Foundation) - Server SDK for Rust (Bot SDKs / Rust)
README
Matrix Rust SDK
Your all-in-one toolkit for creating Matrix clients with Rust, from simple bots to full-featured apps.
![]()
![]()
![]()
![]()
![]()
![]()
The Matrix Rust SDK is a collection of libraries that make it easier to build
[Matrix] clients in [Rust]. It takes care of the low-level details like encryption,
syncing, and room state, so you can focus on your app's logic and UI. Whether
you're writing a small bot, a desktop client, or something in between, the SDK
is designed to be flexible, async-friendly, and ready to use out of the box.[Matrix]: https://matrix.org/
[Rust]: https://www.rust-lang.org/## Project structure
The Matrix Rust SDK is made up of several crates that build on top of each other. Here are the key ones:
- [matrix-sdk-ui](https://docs.rs/matrix-sdk-ui/latest/matrix_sdk_ui/) – A high-level client library that makes it easy to build
full-featured UI clients with minimal setup. Check out our reference client,
[multiverse](https://github.com/matrix-org/matrix-rust-sdk/tree/main/labs/multiverse), for an example.
- [matrix-sdk](https://docs.rs/matrix-sdk/latest/matrix_sdk/) – A mid-level client library, ideal for building bots, custom
clients, or higher-level abstractions. You can find example usage in the
[examples directory](https://github.com/matrix-org/matrix-rust-sdk/tree/main/examples).
- [matrix-sdk-crypto](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/) – A standalone encryption state machine with no network I/O,
providing end-to-end encryption support for Matrix clients and libraries.
See the [crypto tutorial](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/tutorial/index.html)
for a step-by-step introduction.## Status
The library is considered production ready and backs multiple client
implementations such as Element X
[[1]](https://github.com/element-hq/element-x-ios)
[[2]](https://github.com/element-hq/element-x-android),
[Fractal](https://gitlab.gnome.org/World/fractal) and [iamb](https://github.com/ulyssa/iamb). Client developers should feel
confident to build upon it.Development of the SDK has been primarily sponsored by Element though accepts
contributions from all.## Bindings
The higher-level crates of the Matrix Rust SDK can be embedded in other
environments such as Swift, Kotlin, JavaScript, and Node.js. Check out the
[bindings/](./bindings/) directory to learn more about how to integrate the SDK
into your language of choice.## License
[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)