electric
wa-sqlite
Our great sponsors
electric | wa-sqlite | |
---|---|---|
27 | 8 | |
4,831 | 653 | |
13.0% | - | |
9.8 | 8.0 | |
about 16 hours ago | 21 days ago | |
Elixir | JavaScript | |
Apache License 2.0 | MIT License |
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.
electric
-
Ask HN: How Can I Make My Front End React to Database Changes in Real-Time?
I'm interested in this problem also!
I think there is a large overlap with projects that market/focus on offline-first experiences.
AFAIK this problem can be solved by:
1) Considering a client-side copy of the database that gets synced with the remote DB. This is an approach [PowerSync](https://www.powersync.com/) and [ElectricSql](https://electric-sql.com/) and [rxdb](https://rxdb.info/) take!
-
Cloudflare acquires PartyKit to allow developers to build real-time multi-user
Yeah I agree with it being an exaggeration. They are certainly riding the admittedly dated perception that realtime is so hard it's only available to the Googles and Figmas. But there's now some amazing open source solutions available like Y.js and ElectricSQL[1]. The barrier has certainly come down.
[1] https://github.com/electric-sql/electric
- Ask HN: Who is hiring? (April 2024)
- FLaNK Stack 26 February 2024
- FLaNK Stack Weekly 12 February 2024
- Show HN: RemoteStorage – sync localStorage across devices and browsers
- I pwned half of America's fast food chains, simultaneously
-
PostgreSQL 16 Bi-Directional Logical Replication
https://github.com/electric-sql/electric :
> ElectricSQL is a local-first software platform that makes it easy to develop high-quality, modern apps with instant reactivity, realtime multi-user collaboration and conflict-free offline support.
> Local-first is a new development paradigm where your app code talks directly to an embedded local database and data syncs in the background via active-active database replication. Because the app code talks directly to a local database, apps feel instant. Because data syncs in the background via active-active replication it naturally supports multi-user collaboration and conflict-free offline
"SQLedge: Replicate Postgres to SQLite on the Edge" (2023)
-
Show HN: PowerSync – Bi-directional Postgres<>SQLite sync for offline-first apps
Yup, this is correct.
We have had some requests / discussions around adding hooks to the sync service that will support custom logic on the write path (as per https://github.com/electric-sql/electric/discussions/565). This seems like a good idea but they don't exist yet.
- Electric SQL – Local-first sync layer for web and mobile apps
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
What are some alternatives?
fulcro - A library for development of single-page full-stack web applications in clj/cljs
mycelite - Mycelite is a SQLite extension that allows you to synchronize changes from one instance of SQLite to another.
cr-sqlite - Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite
harfbuzzjs - Providing HarfBuzz shaping library for client/server side JavaScript projects
crdt-benchmarks - A collection of CRDT benchmarks
wundergraph - WunderGraph is a Backend for Frontend Framework to optimize frontend, fullstack and backend developer workflows through API Composition.
walt - :zap: Walt is a JavaScript-like syntax for WebAssembly text format :zap:
multiversion-concurrency-control - Implementation of multiversion concurrency control, Raft, Left Right concurrency Hashmaps and a multi consumer multi producer Ringbuffer, concurrent and parallel load-balanced loops, parallel actors implementation in Main.java, Actor2.java and a parallel interpreter
litestream - Streaming replication for SQLite.
sqlsync - SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge.