|
1 |
| - |
2 |
| -[](https://codecov.io/gh/matrix-org/matrix-rust-sdk) |
3 |
| -[](https://opensource.org/licenses/Apache-2.0) |
4 |
| -[](https://matrix.to/#/#matrix-rust-sdk:matrix.org) |
5 |
| -[](https://matrix-org.github.io/matrix-rust-sdk/matrix_sdk/) |
6 |
| -[](https://docs.rs/matrix-sdk) |
| 1 | +<h1 align="center">Matrix Rust SDK</h1> |
| 2 | +<div align="center"> |
| 3 | + <i>Your all-in-one toolkit for creating Matrix clients with Rust, from simple bots to full-featured apps.</i> |
| 4 | + <br/><br/> |
| 5 | + <img src="contrib/logo.svg"> |
| 6 | + <br> |
| 7 | + <hr> |
| 8 | + <a href="https://github.com/matrix-org/matrix-rust-sdk/releases"> |
| 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> |
| 10 | + <a href="https://crates.io/crates/matrix-sdk/"> |
| 11 | + <img src="https://img.shields.io/crates/v/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a> |
| 12 | + <a href="https://codecov.io/gh/matrix-org/matrix-rust-sdk"> |
| 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> |
| 14 | + <br> |
| 15 | + <a href="https://docs.rs/matrix-sdk/"> |
| 16 | + <img src="https://img.shields.io/docsrs/matrix-sdk?style=flat&labelColor=1C2E27&color=66845F&logo=Rust&logoColor=white"></a> |
| 17 | + <a href="https://github.com/matrix-org/matrix-rust-sdk/actions/workflows/ci.yml"> |
| 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> |
| 19 | + <br> |
| 20 | + <br> |
| 21 | +</div> |
7 | 22 |
|
8 |
| -# matrix-rust-sdk |
9 | 23 |
|
10 |
| -**matrix-rust-sdk** is an implementation of a [Matrix][] client-server library in [Rust][]. |
| 24 | +The Matrix Rust SDK is a collection of libraries that make it easier to build |
| 25 | +[Matrix] clients in [Rust]. It takes care of the low-level details like encryption, |
| 26 | +syncing, and room state, so you can focus on your app's logic and UI. Whether |
| 27 | +you're writing a small bot, a desktop client, or something in between, the SDK |
| 28 | +is designed to be flexible, async-friendly, and ready to use out of the box. |
11 | 29 |
|
12 | 30 | [Matrix]: https://matrix.org/
|
13 | 31 | [Rust]: https://www.rust-lang.org/
|
14 | 32 |
|
15 | 33 | ## Project structure
|
16 | 34 |
|
17 |
| -The rust-sdk consists of multiple crates that can be picked at your convenience: |
| 35 | +The Matrix Rust SDK is made up of several crates that build on top of each other. Here are the key ones: |
18 | 36 |
|
19 |
| -- **matrix-sdk** - High level client library, with batteries included, you're most likely |
20 |
| - interested in this. |
21 |
| -- **matrix-sdk-base** - No (network) IO client state machine that can be used to embed a |
22 |
| - Matrix client in your project or build a full fledged network enabled client |
23 |
| - lib on top of it. |
24 |
| -- **matrix-sdk-crypto** - No (network) IO encryption state machine that can be |
25 |
| - used to add Matrix E2EE support to your client or client library. |
| 37 | +- [matrix-sdk-ui](https://docs.rs/matrix-sdk-ui/latest/matrix_sdk_ui/) – A high-level client library that makes it easy to build |
| 38 | + full-featured UI clients with minimal setup. Check out our reference client, |
| 39 | + [multiverse](https://github.com/matrix-org/matrix-rust-sdk/tree/main/labs/multiverse), for an example. |
| 40 | +- [matrix-sdk](https://docs.rs/matrix-sdk/latest/matrix_sdk/) – A mid-level client library, ideal for building bots, custom |
| 41 | + clients, or higher-level abstractions. You can find example usage in the |
| 42 | + [examples directory](https://github.com/matrix-org/matrix-rust-sdk/tree/main/examples). |
| 43 | +- [matrix-sdk-crypto](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/) – A standalone encryption state machine with no network I/O, |
| 44 | + providing end-to-end encryption support for Matrix clients and libraries. |
| 45 | + See the [crypto tutorial](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/tutorial/index.html) |
| 46 | + for a step-by-step introduction. |
26 | 47 |
|
27 | 48 | ## Status
|
28 | 49 |
|
29 |
| -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) and [Fractal](https://gitlab.gnome.org/World/fractal). Client developers should feel confident to build upon it. |
| 50 | +The library is considered production ready and backs multiple client |
| 51 | +implementations such as Element X |
| 52 | +[[1]](https://github.com/element-hq/element-x-ios) |
| 53 | +[[2]](https://github.com/element-hq/element-x-android), |
| 54 | +[Fractal](https://gitlab.gnome.org/World/fractal) and [iamb](https://github.com/ulyssa/iamb). Client developers should feel |
| 55 | +confident to build upon it. |
30 | 56 |
|
31 |
| -Development of the SDK has been primarily sponsored by Element though accepts contributions from all. |
| 57 | +Development of the SDK has been primarily sponsored by Element though accepts |
| 58 | +contributions from all. |
32 | 59 |
|
33 | 60 | ## Bindings
|
34 | 61 |
|
35 |
| -Some crates of the **matrix-rust-sdk** can be embedded inside other |
36 |
| -environments, like Swift, Kotlin, JavaScript, Node.js etc. Please, |
37 |
| -explore the [`bindings/`](./bindings/) directory to learn more. |
| 62 | +The higher-level crates of the Matrix Rust SDK can be embedded in other |
| 63 | +environments such as Swift, Kotlin, JavaScript, and Node.js. Check out the |
| 64 | +[bindings/](./bindings/) directory to learn more about how to integrate the SDK |
| 65 | +into your language of choice. |
38 | 66 |
|
39 | 67 | ## License
|
40 | 68 |
|
|
0 commit comments