Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use sqlite.org/sqlite, revert to sync api #988

Merged
merged 22 commits into from
Aug 26, 2024
Merged

Conversation

insipx
Copy link
Contributor

@insipx insipx commented Aug 23, 2024

the async backend is still on a branch, wasm-backend-async

the OpenMls storage trait is sync, so while xmtp_mls can be made 100% async (it's mostly async now anyway, other than the db/pool), the openmls trait can not, without significant refactoring of the openmls library

wa-sqlite is advantageous over the official sqlite wasm since its possible to define your own VFS in Javascript. This enables using browser-native APIs like IndexedDb/OPFS/etc or any combination of custom VFS. That's why wa-sqlite has such an extensive list of VFS' -- it's very flexible. Because of this, however, it exports a strictly async API. it's possible to make this api sync, but that would offer little benefit over using the normal sqlite compiled wasm. this also brings the API closer to whats in diesel, enabling more code sharing in the future.

the official sqlite wasm defines a sync api and only offers the use of OPFS as a VFS. It supports web workers, too. This fits requirements for getting xmtp_mls on web, and makes integration easier since no transition to async for db calls is necessary.

  • removes diesel-async, wa-sqlite
  • adds sqlite/sqlite-wasm
  • removes all async/await

@insipx insipx marked this pull request as ready for review August 26, 2024 15:08
@insipx insipx requested review from fabriguespe and a team as code owners August 26, 2024 15:08
@insipx insipx merged commit f1274c0 into wasm-backend Aug 26, 2024
2 of 3 checks passed
@insipx insipx deleted the insipx/abandon-async branch August 26, 2024 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant