wa-sqlite
sqlsync
wa-sqlite | sqlsync | |
---|---|---|
8 | 7 | |
659 | 1,725 | |
- | 2.5% | |
8.0 | 9.2 | |
about 23 hours ago | about 2 months ago | |
JavaScript | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wa-sqlite
-
Ask HN: Wa-SQLite vs. Dexie, 2024
The word on the street is that https://github.com/rhashimoto/wa-sqlite is nearly production ready, closing in on the neat 1.0.0 release, with its IDBBatchAtomic engine highly recommended at https://www.powersync.com/blog/sqlite-persistence-on-the-web. You can try out the benchmark https://rhashimoto.github.io/wa-sqlite/demo/benchmarks.html.
And the other contestant is Dexie, stable https://dexie.org/.
If you were to branch into a new venture today, which one would you pick? And why?
-
A future for SQL on the web (2021)
It seems indeed very nice, the examples are clear and everything works from async. I tried with Deno, and now experimenting with my own VFS.
It does seem to suffer from maintainer problems too though, and I don't blame Roy Hashimoto for that. I wouldn't want to maintain such an obvious wrapper when it should be a task for SQLite's team to upstream the changes.
Roy Hashimoto doesn't want to maintain it as an NPM package for instance, as it is just an experiment: https://github.com/rhashimoto/wa-sqlite/issues/12
"Low traffic is a happy place - I don't have any motivation to mess with that."
-
Loro Now Open Source: Reimagine State Management with CRDTs
This is the WASM blob and it's 1.1 MB uncompressed. https://github.com/rhashimoto/wa-sqlite/blob/master/dist/wa-.... No issues - it's cached by cloudflare.
We're using IndexedDB. Here's a writeup on alternatives https://github.com/rhashimoto/wa-sqlite/issues/85 and a benchmark https://rhashimoto.github.io/wa-sqlite/demo/benchmarks.html
-
Scaling Linear's Sync Engine
I have a genuine appreciation for how Linear has built this. We have had to build something similar for our note taking application (Reflect). It is very tricky to do and I wish there was more research on this.
In my opinion, what we need is:
1) A client-side performant SQLite database that supports live queries. I.e. you can automatically re-render the page when the queries change. That way your database can drive the UI and be the source of truth in regards to what's displayed on the screen.
2) A separate realtime syncing protocol that syncs database state to client state.
And ideally this is all open source, and that these two endeavors are not coupled tightly.
[1] Wa-sqlite is the best (imo) client-side db - better than than the official Sqlite WASM build (for now) because it had a indexeddb fallback for browsers that aren't the cutting edge Chrome.
[2] cr-sqlite is an interesting project using CRDTs to sync state around. However I still believe that for many production use-cases you want a ultimate server source of truth.
[3] Replicache is still the best closed source solution I know of.
[1] - https://github.com/rhashimoto/wa-sqlite
-
Mycelite: SQLite extension to synchronize changes across SQLite instances
[2] https://github.com/rhashimoto/wa-sqlite/discussions/63
- Eles tem um ponto
- Wa-SQLite (WASM SQLite) benchmark discussion
- WebAssembly SQLite with experimental support for browser storage extensions
sqlsync
-
A future for SQL on the web (2021)
If you're looking for a very real use case of SQLite in the browser, there's SQLSync[1]. It was recently discussed on HN[2].
[1]: https://sqlsync.dev/posts/stop-building-databases/, https://sqlsync.dev/
- SQLSync: Collaborative Offline-first SQLite
-
SQLSync – Stop Building Databases
No, there is a client part: https://github.com/orbitinghail/sqlsync/blob/main/GUIDE.md
> Step 2: Install and configure the React library
- SQLSync: Collaborative Offline-First SQLite
-
Some notes on local-first development
Here's another local-first collaborative component: SQLSync [0]
[0] https://github.com/orbitinghail/sqlsync
- SQLSync is a collaborative offline-first wrapper around SQLite
What are some alternatives?
mycelite - Mycelite is a SQLite extension that allows you to synchronize changes from one instance of SQLite to another.
triplit - A full-stack, syncing database that runs on both server and client. Pluggable storage (indexeddb, sqlite, durable objects), syncs over websockets, and works with your favorite framework (React, Solid, Vue, Svelte).
harfbuzzjs - Providing HarfBuzz shaping library for client/server side JavaScript projects
localfirstweb.dev - A list of various resources for local-first web development
cr-sqlite - Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite
sea-query - 🔱 A dynamic SQL query builder for MySQL, Postgres and SQLite
electric - Local-first sync layer for web and mobile apps. Build reactive, realtime, local-first apps directly on Postgres.
rusqlite - Ergonomic bindings to SQLite for Rust
walt - :zap: Walt is a JavaScript-like syntax for WebAssembly text format :zap:
evolu - Local-first platform designed for privacy, ease of use, and no vendor lock-in
litestream - Streaming replication for SQLite.
htmx - </> htmx - high power tools for HTML