Matrix Client-Server SDK for Rust
Go to file
Jonas Platte b1062a67e0 fix(sdk): Rewrite decryption retrying to fix invalid index bug
Previously, it was possible for us to use invalid indices when:

- We retried decrypting multiple events at once
- One of them (not the last) was an edit or reaction

This lead to a situation where we would remove the UTD item once
decryption for it was successfully retried, but not account for the
resulting index shift for all later timeline items.
2023-02-22 12:44:11 +01:00
.cargo chore: Upgrade uniffi to 0.23.0 2023-02-02 10:15:05 +01:00
.config fix: Apply redactions to room state events in database, too (#917) 2022-09-27 09:24:53 +02:00
.github ci: Fail coverage job if the coverage report can't be uploaded (#1515) 2023-02-16 09:36:43 +00:00
benchmarks chore(deps): bump tokio from 1.24.1 to 1.24.2 2023-02-04 08:27:50 +01:00
bindings feat(crypto-nodejs): `OlmMachine.initialize` takes a new optional store type 2023-02-22 10:33:26 +01:00
contrib chore(contrib): Mitmproxy 9 has removed the HTTP prefix from the Response type 2022-11-17 12:43:56 +01:00
crates fix(sdk): Rewrite decryption retrying to fix invalid index bug 2023-02-22 12:44:11 +01:00
examples refactor(sdk): Replace futures-signals with eyeball-im in the timeline 2023-02-20 18:01:31 +01:00
labs refactor(sdk): Replace futures-signals with eyeball-im in the timeline 2023-02-20 18:01:31 +01:00
testing refactor(sdk): Remove derive_builder 2023-02-21 10:20:11 +01:00
uniffi-bindgen chore: Upgrade uniffi to 0.23.0 2023-02-02 10:15:05 +01:00
xtask chore: Upgrade uniffi to 0.23.0 2023-02-02 10:15:05 +01:00
.editorconfig build: Adding .editorconfig 2022-08-01 14:33:05 +02:00
.gitignore feat(bindings): Generate a Package.swift in xtask 2022-12-12 18:04:15 +01:00
.rustfmt.toml chore: Add rust.vim edition workaround 2022-09-22 10:38:17 +02:00
.typos.toml fix(sdk): Rewrite decryption retrying to fix invalid index bug 2023-02-22 12:44:11 +01:00
CONTRIBUTING.md chore: Add CONTRIBUTING.md 2022-12-05 14:58:33 +01:00
CONVENTIONAL_COMMITS.md docs: Add the `ffi` scope. 2023-01-27 14:58:54 +01:00
Cargo.lock feat(crypto-nodejs): `OlmMachine.initialize` takes a new optional store type 2023-02-22 10:33:26 +01:00
Cargo.toml refactor(sdk): Replace futures-signals with eyeball-im in the timeline 2023-02-20 18:01:31 +01:00
LICENSE rust-sdk: Switch the license to Apache 2.0. 2020-02-21 16:54:05 +01:00
README.md chore: Fix our build badge 2022-12-22 11:26:29 +01:00
UPGRADING-0.5-to-0.6.md chore: fix typos in Upgrade guide 2022-09-28 17:07:37 +02:00
codecov.yaml ci: update codecov config to exclude all testing crates 2022-08-02 10:59:18 +02:00
tarpaulin.toml ci: Exclude uniffi-bindgen from coverage checks 2023-02-10 13:02:31 +01:00

README.md

Build Status codecov License #matrix-rust-sdk Docs - Main Docs - Stable

matrix-rust-sdk

matrix-rust-sdk is an implementation of a Matrix client-server library in Rust.

Project structure

The rust-sdk consists of multiple crates that can be picked at your convenience:

  • matrix-sdk - High level client library, with batteries included, you're most likely interested in this.
  • matrix-sdk-base - No (network) IO client state machine that can be used to embed a Matrix client in your project or build a full fledged network enabled client lib on top of it.
  • matrix-sdk-crypto - No (network) IO encryption state machine that can be used to add Matrix E2EE support to your client or client library.

Minimum Supported Rust Version (MSRV)

These crates are built with the Rust language version 2021 and require a minimum compiler version of 1.65.

Status

The library is in an alpha state, things that are implemented generally work but the API will change in breaking ways.

If you are interested in using the matrix-sdk now is the time to try it out and provide feedback.

Bindings

Some crates of the matrix-rust-sdk can be embedded inside other environments, like Swift, Kotlin, JavaScript, Node.js etc. Please, explore the bindings/ directory to learn more.

License

Apache-2.0