7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 1 | # FFI bindings for the rust matrix SDK |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 2 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 3 | This uses [`uniffi`](https://mozilla.github.io/uniffi-rs/Overview.html) to build |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 4 | the matrix bindings for native support and wasm-bindgen for web-browser assembly |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 5 | support. Please refer to the specific section to figure out how to build and use |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 6 | the bindings for your platform. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 7 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 8 | ## Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 9 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 10 | Given the number of platforms targeted, we have broken out a number of features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 11 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 12 | ### Functionality |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 13 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 14 | - `sentry`: Enable error monitoring using Sentry, not supports on Wasm |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 15 | platforms. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 16 | - `sqlite`: Use SQLite for the session storage. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 17 | - `bundled-sqlite`: Use an embedded version of SQLite instead of the system |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 18 | provided one. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 19 | - `indexeddb`: Use IndexedDB for the session storage. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 20 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 21 | ### Unstable specs |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 22 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 23 | - `unstable-msc4274`: Adds support for gallery message types, which contain |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 24 | multiple media elements. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 25 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 26 | ## Platforms |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 27 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 28 | Each supported target should use features to build the relevant system. Here are |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 29 | some suggested feature flags for the major platforms: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 30 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 31 | - Android: `"bundled-sqlite,unstable-msc4274,sentry"` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 32 | - iOS: `"bundled-sqlite,unstable-msc4274,sentry"` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 33 | - JavaScript/Wasm: `"indexeddb,unstable-msc4274"` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 34 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 35 | ### Swift/iOS sync |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 36 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 37 | TBD |