-
Notifications
You must be signed in to change notification settings - Fork 6
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
Adds ZipFS to the existing solutions #4
Conversation
Does it make sense to put this under a new section called "Virtual File System Implementations" because IIUC, the zip is separate from the executable? |
Thanks @arcanis ! I agree with @RaisinTen . Let's add a new section called |
Sure 👍 I'll wait for #7 to be merged and update my PR accordingly |
FWIW long ago I prototyped a simplification of I think it's a cool idea, worth investigating. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#7 got merged sooo,
Signed-off-by: Darshan Sen <raisinten@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've moved the ZipFS part to VFS implementations and force-pushed. Landing now!
Yarn has been using a filesystem layer over Node for all PnP applications for a few years now. It's well-maintained, used in production, covered by tests (although there's no way to run the Node.js test suite over it, which is too bad), and supports almost all Node features (including fds, buffer paths, file watching, ...).
We use it to package every dependency, including those with bin entries (for instance, when you run
yarn eslint
, it runs it straight from the zip archive thanks to this layer).Here's what the implementation looks like:
https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-fslib/sources/ZipFS.ts