Skip to content
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

zipfs: port from afero #19

Open
progrium opened this issue Nov 17, 2023 · 0 comments
Open

zipfs: port from afero #19

progrium opened this issue Nov 17, 2023 · 0 comments
Assignees
Labels
good first issue Good for newcomers
Milestone

Comments

@progrium
Copy link
Contributor

progrium commented Nov 17, 2023

We'll be using zip as our starting general archive format. If we need to aggregate files into a single blob, zip is such a widely deployed format that there isn't a reason to invent one. We'll already be using it to bundle compressed files with executables as a polyglot file a la redbean for our compiler. We'll probably use it to export/download parts of the Wanix filesystem, as well as include certain filesets in the bundled bootloader.

And leaning into our filesystem abstraction, it will likely be helpful to have a zipfs. One first usecase is to allow user zip files on the filesystem to be automatically explored (similar to Windows). In the case of our compiler build, as it is also a zipfile containing the precompiled standard library, zipfs could be used to just mount the file instead of extracting and writing files out to be used, then deleting them. Not a material benefit, but seems cleaner.

A simply read-only zipfs using the Go standard library's zip package is already implemented in afero and would be trivial to port to our FS abstraction.

@progrium progrium added the good first issue Good for newcomers label Nov 17, 2023
@progrium progrium added this to the soon milestone Nov 17, 2023
@Parzival-3141 Parzival-3141 self-assigned this Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants