Implement 9p protocol against a local storage (IndexedDB, FileSystem API) #17
Description
To have persistent sessions and files, we need to be able to write file changes to local storage in the browser.
As of today, we have two solutions:
- IndexedDB
- FileSystem API
An implementation already exists for IndexedDB: https://github.com/humphd/v86/tree/filer-9p-lastknowngood
The demo: https://humphd.github.io/browser-shell/
The 9p filesystem is mounted under /mnt
in this case.
The difficulty we'll have is that we have 9p mounted as /
in our case (all files are statically served), so I think we'll have to make a custom implementation where we will check if the file is available in IndexedDB, and if it's not we will fallback to the statically served file.
So we'll have a hosted layer (the current implementation), with a cached layer in-between.
Links about the 9p protocol: