This is an overview of topics/sections from which the slides are derived.
- Intro
- Title
- Introduce Self
- Introduce Topic
- Motivation
- Background on problem (e.g. dependency resolution on web, no server, etc)
- What was attempted before
- Performance is a concern
- Lots of node-side tooling not available in web-compatible JS libraries (e.g.
tar
) - Eventual ability to work against private registries
- Solution
- Use WebAssembly to run package manager directly on the edgiest of edges (browser itself)
- Use a "systems" language that already has native libraries (Rust in this case)
- Use a package manager that is already written (Orogene)
- Details
- Package up its dependency resolution algorithm in a WASM module
- Use
tsify
to extract TypeScript types from Rust code wasm-bindgen
/wasm-pack
to build publishable NPM packagesjs_sys
,wasm_streams
, others for compatibility with foreign types- Big caveat: BYOGC
- Give brief tour of node_maintainer::wasm module
- Give brief tour of what compilation and output look like
- Put a Bow On it
- Show what the consuming wrapper looks like
- Video of package manager working in vscode.dev