Replies: 1 comment
-
Thanks for your interest and offer! I have a high bar to accept non-trivial outside contributions, especially any that can be easily implemented in a separate complementary package. That includes higher-level APIs that abstract or simplify calling the base API, and alternative VFS classes. The primary reason is I want to keep my scope of support small. I think all your suggestions here would be fine in their own repo(s). |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
First of all I'd like to thank you for creating wa-sqlite, it's the only IndexedDB enabled sqlite wrapper that works well for a large (> 1gb) DB I'm working with and allows importing existing DBs.
I'm working on some QOL improvements for this project. I actually started to create a thin wrapper package to encapsulate wa-sqlite, however most of my improvements can just be upstreamed to this project directly. I see that PRs are frowned upon so I'll just dump my ideas and improvements here and let you do what you will with them. I'm OK with however you'd like to own this.
First item is to improve building the wasm artifacts. I threw together a simple docker setup which should allow easy reproducible builds without needing to use Github Actions
Next up is a better typed tag function. The way it currently works doesn't appear to use the built-in prepared statements, this uses placeholders and has sqlite fill them in. I'm still on the fence if the return type should be a generator with methods attached vs attaching methods to the tagging function, right now it's the latter.
The
create_function
function is pretty unintuitive, I have this instead:I also have a wrapper around IndexedDB that uses
pako
that, in my experience, reduces the on file DB cost by a factor of 3x. This file is a drop in replacement for IndexedDB usage inwa-sqlite/src/examples/IDBBatchAtomicVFS.js
Line 583 in 160e2fb
I have this as opt-outable since it's a pretty nasty hack, but hey "it works on my machine" so I like it.
Additionally when playing around with development for wa-sqlite, it would be helpful to have a vite project (or similar) within this repo that allows
npm start
to have a interactive page with a quick feedback cycle to try different things out. It will also be a good approximation for how end users will probably end up using this project.I understand this is somewhat exploratory, but the VFS setup and bootstrapping is pretty janky (coming from a UI engineer POV). Is it possible to expose better primitives? I don't have a clear vision of what this will look like but I'm happy to discuss more if that's something you'd like to explore.
I know this is a giant brain dump so feel free to extract this into separate items if that makes more sense.
Beta Was this translation helpful? Give feedback.
All reactions