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

Endo #336

Closed
wants to merge 15 commits into from
Closed

Endo #336

wants to merge 15 commits into from

Conversation

kriskowal
Copy link
Member

@kriskowal kriskowal commented Jun 11, 2020

This tracks the full stack of changes needed to build a new core for importBundle / importArchive. The new endo package implements importPath, writeArchive, and importArchive, such that a round-trip through an archive behaves identically to executing directly.

The endo name implies an aspiration to provide a drop-in replacement for node, but encapsulated. This cut doesn’t engage in that aspiration, other than to lay groundwork. There is far more TODO than TODONE.

The stack, at time of creating this draft, also includes a straw man archival format, which will be replaced with a suitable implementation of zip or tar. Many deep packet inspection firewalls filter zip files. Tarballs have a limit of 100 bytes or 255 bytes for each entry’s path, depending on the sophistication of the implementation. That limit could be overcome by using hashes and a detailed manifest, but that would defeat the ideal that an extracted archive be just as executable.

The strawman archive library (agar) can run in SES, doesn’t take a dependency on fs or anything else Node.js-specific, so is suitable for front-end as well as back-end. The format has no limitation on file name length or file size and doesn’t waste space or complexity on Unix or Windows-specific features. It is, nonetheless, temporary.

Regardless, the archival format should be loosely coupled. The Endo archive builder expects an object that implements {get, set} or a function that creates such an object from a byte array.

@kriskowal kriskowal force-pushed the kris/endo-stack branch 10 times, most recently from e0be333 to d43cb1d Compare August 28, 2020 03:50
@kriskowal kriskowal force-pushed the kris/endo-stack branch 3 times, most recently from 48b57b5 to 55f9173 Compare September 3, 2020 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant