-
Notifications
You must be signed in to change notification settings - Fork 55
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
Review of NativeIO #566
Comments
Hi @fivedots - thanks for this. One initial question: is there any discussion going on with other implementers? Has there been any feedback or interest? Also, you state that this helps with "much-requested use-cases for the web, such as implementing performant databases and gracefully managing large temporary files." I'm wondering if there are some bugs you can link to? |
Taking a look at this again - one thing that occurs to us is that the name itself is a little confusing (and alarming). If it's origin-bound then maybe something like "origin bound virtual filesystem" would be more accurate? The name should be more descriptive so that web developers understand what this is and can make a reasonable decision about how to use it, compared to other APIs. Also "I/O" could cover a lot of bases - e.g. webUSB, webserial, ... but what we are talking about here is filesystem primitives... |
How much does this API differ from the one provided by File System Access? And when it differs substantially then why? |
We discussed this in today's call. Some questions we had based on our understanding of the explainer:
These are questions we had from the first skim - we'll look into this in a bit more depth in a separate breakout later. |
Additionally, beyond WCIG where do you see this API being worked on? |
I’ll try to reply to everything that has come up:
Thank you all for the feedback and help! |
Hi there, we will look at this again tomorrow in a breakout, so wondering if there has been made any progress since your last comment? |
Hello, I only have a short update:
|
One question - will flush() come with guarantees? What happens if your flush() doesn't finish and the tab is closed by the user? Does this warrant a weird special path like we have with Beacons? (Feels like if there is a guarantee then it should be normative in the spec, when that is written.) |
I like the name "Storage Foundation API" as it will make it clearer to developers that this is not a file system API in the normal sense. WebAppWG also sounds like the right venue. |
One meta-level comment: in your ongoing work on this API and technology can you please consider the complexity of the developer experience. When we provide multiple, very similar and similarly-named APIs (which may have important differences) it makes the overall platform more difficult for developers to grok. Maybe consider an MDN article which lays out the differences for all the filesystem-like APIs? |
We'll close this for now - looking forward to revisiting when there is a spec. (hopefully with the points we brought up above sorted out!) Thanks for bringing this to our attention! |
HIQaH! QaH! TAG!
I'm requesting a TAG review of NativeIO.
NativeIO is a storage API that resembles a very basic filesystem, with direct access to stored data through buffers and offsets. Our goal is to give developers flexibility by providing generic, simple, and performant primitives upon which they can build higher-level components. It's particularly well suited for Wasm-based libraries and applications that want to use custom storage algorithms to fine-tune execution speed and memory usage.
Further details:
We'd prefer the TAG provide feedback as:
🐛 open issues in our GitHub repo for each point of feedback
The text was updated successfully, but these errors were encountered: