wa-sqlite
harfbuzzjs
wa-sqlite | harfbuzzjs | |
---|---|---|
8 | 2 | |
659 | 176 | |
- | 5.7% | |
8.0 | 5.9 | |
1 day ago | about 1 month ago | |
JavaScript | JavaScript | |
MIT License | GNU General Public License v3.0 or later |
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
harfbuzzjs
-
3D and 2D: Testing out my cross-platform graphics engine
There is a well maintained Wasm build of harfbuzz: <https://github.com/harfbuzz/harfbuzzjs> with both OpenType and AAT shapers support, which should be enough but you can also provide your own shaper implementation in Wasm yes.
We're successfully using Wasm harfbuzz to render text in a web-based design tool with relatively high usage so there should be no issues integrating it :)
-
The Web Assembly Shaper
I was researching how to get a WASMified version of harfbuzz into my frontend 2d canvas library (because: text implementation in the 2D Canvas API is genuinely dire) when I discovered this issue had already been addressed back in 2019, when the guy who develops Photopea asked the question and got a positive answer - https://github.com/harfbuzz/harfbuzzjs/issues/10
What are some alternatives?
mycelite - Mycelite is a SQLite extension that allows you to synchronize changes from one instance of SQLite to another.
localpdfmerger - Merge PDFs, optimize PDFs, and extract Information like Images from PDF Files locally inside your Browser
cr-sqlite - Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite
webassemblyjs - Toolchain for WebAssembly
electric - Local-first sync layer for web and mobile apps. Build reactive, realtime, local-first apps directly on Postgres.
harfbuzz - HarfBuzz text shaping engine
walt - :zap: Walt is a JavaScript-like syntax for WebAssembly text format :zap:
opentype.js - Read and write OpenType fonts using JavaScript.
litestream - Streaming replication for SQLite.
sql.js - A javascript library to run SQLite on the web.
sqlsync - SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge.
manifold - Geometry library for topological robustness