Files
matrix-rust-sdk/crates/matrix-sdk-indexeddb
Skye Elliot 3924463c6d fix: Correctly store rooms with downloaded keys in SQLite and IndexedDB. (#6044)
While https://github.com/matrix-org/matrix-rust-sdk/pull/6017 is mostly
functional, there are two issues:

- I did not process `changes.room_key_bundles_fully_downloaded` in
`matrix-sdk-sqlite`, meaning any updates made via `Changes` would not be
persisted;
- I used a non-encrypting `JsValue` serialisation for the same field in
`matrix-sdk-indexeddb`, which causes errors when passed to the
decryption-enabled deserializer.

Solutions:

- Process the aforementioned changes such that keys are added to SQLite;
- Use a non-encrypting deserialiser, since this is effectively a
hash-set, and the contents aren't sensitive.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>
2026-01-26 14:12:54 +00:00
..

matrix-sdk-indexedddb

This crate implements a storage backend on IndexedDB for web environments using the matrix-sdk-base primitives.

Usage

The most common usage pattern would be to have this included via matrix-sdk in your Cargo.toml and leave instantiation to it.

[target.'cfg(target_family = "wasm")'.dependencies]
matrix-sdk = { version = "0.5, default-features = false, features = ["indexeddb", "e2e-encryption"] }

Crate Feature Flags

The following crate feature flags are available:

  • e2e-encryption: (on by default) Enables the store for end-to-end encrypted data (IndexeddbCryptoStore).
  • state-store: (on by default) Enables the StateStore implementation (IndexeddbStateStore).