Server-Side Computation of Package Dependencies in Package-Management Systems
summary
Server computes full dependency graphs for npm packages in advance and serves them so clients fetch each package graph with one request. Implementation includes fpms-server (Scala) and a TypeScript client fpms. Initialization parallelization cuts indirect-dependency computation from 30 minutes to 15 minutes. Adding a package triggers incremental recomputation whose cost scales with how many packages depend on that name (underscore and debug cause large updates). Experiments show client installs run more than two times faster than existing npm/yarn clients for dependency-heavy packages.
AI-written summary · about
chapters (15)
- 0:00Package dependency computation
- 1:37Server-side dependency proposal
- 2:25Dependency graph updates
- 3:09Circular dependencies in graphs
- 3:51Scalability with millions of packages
- 4:13Server-side dependency algorithms
- 6:24Directly-dependent packages
- 6:44Indirectly-dependent packages
- 7:28Recomputing graphs on new package
- 8:10Implementation and performance
- 8:56Demo with fpms-server
- 9:19Dependency query and installation
- 10:16Comparison with yarn
- 10:57Server initialization times
- 12:12Summary and future work
related talks
45mNext Gen Package Management
38mDependency Management: The Cause of—and Solution to—All Supply...
41mThe Future of JavaScript Package Management
18mFront End Dependency Management
40mDependency Management in MFs
24mManaging Dependencies with Confidence
37mPackages and versioning
41mnpm and the Future of JavaScript
