mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-14 02:55:47 -04:00
The `OlmMachine` constructor now has 2 more optional arguments: `store_name` and `store_passphrase`, to use Indexed DB as the backend to store the Olm machine keys, rather than having an in-memory Olm machine. Node.js is used to test our binding. Indexed DB is absent of Node.js. So, firstly, we are using the `fake-indexeddb` JavaScript library to mimic the same API inside Node.js. And, secondly, we use our own fork of the `indexed_db_futures` Rust crate to provide add support for Node.js too ([PR is here](https://github.com/Alorel/rust-indexed-db/pull/11)). It basically looks in the Node.js global environment if the `indexedDB` getter is present, just like it is already done for `Window` on any browser, or `WorkerGlobalScope` for workers.