diff --git a/meetings/2022-09-05.md b/meetings/2022-09-05.md new file mode 100644 index 0000000..3375f99 --- /dev/null +++ b/meetings/2022-09-05.md @@ -0,0 +1,64 @@ +# Node.js Single-Executable Meeting 2022-09-05 + +## Links + +* **Recording**: https://youtu.be/93cIMtkQaak +* **GitHub Issue**: https://github.com/nodejs/single-executable/discussions/19 + +## Present + +* Anna Henningsen @addaleax +* Darshan Sen @RaisinTen +* Jean Burellier @sheplu +* Juan Cruz Viotti @jviotti +* Maël Nison @arcanis +* Tobias Nießen @tniessen + +## Notes + +During this call, most of the discussions revolved around the problem of +designing a general Virtual File System that would fit every necessary use +case, ranging from compression support, native add-on interoperability, etc. + +The key conclusion from the call is that designing a truly universal VFS that +checks all the boxes that we care about and the ones that are probably unknown +so far is not trivial. For this reason, we will attempt to make VFS +user-defined for the SEA MVP. That way, we will have a better sandbox to play +with VFS', see what people come up with and eventually bring back these +learnings to the SEA project without getting indefinitely stuck at the VFS +phase. + +To accomplish this decoupling, we hope to: + +- Provide hooking capabilities to Node.js to allow developers to extend + `require()`, `fs` and related key components of Node.js to support arbitrary + virtual file systems without monkey-patching these modules like i.e. + Electron, Yarn and PKG do at the moment. + +- Fix remaining issues on the Resource Injector current implementation + (https://github.com/postmanlabs/postject) for injecting multiple sections of + data. One of these sections will contain the VFS byte-stream, and the other + one will contain the bootstrap script that can be injected to `teach` Node.js + about the VFS of choice. + +Once we have a better grasp on what the ideal VFS should look like, we will +attempt to ship the SEA project with a blessed VFS implementation. + +We also touched on what the definition of "Single Executable Application" +means. Does it mean we will go out of our way to package every Node.js +application as a single file (embedding native add-ons, etc on the executable +itself)? Does an app that consists of the main executable along with sibling +".node" shared libraries still qualifies as a SEA? Clearly defining what an SEA +is (and is not) is key for identifying the core constrains for the ideal VFS +implementation later down the road. + +## Action Items + +- [ ] Make defining user-land VFS' feasible (given the plan outlined above) +- [ ] Define and document what SEAs really mean + +## Upcoming Meetings + +* **Node.js Project Calendar**: + +Click `+GoogleCalendar` at the bottom right to add to your own Google calendar.