Zero-dependency streaming tar parser and writer for JavaScript
2 days ago
- NPM生态系统受到遗留依赖的困扰,这些依赖会拖慢应用运行速度、延长安装时间,并扩大供应链攻击的攻击面。
- e18e.dev 是一场旨在推动生态系统现代化的运动,它倡导使用更简洁、高效的库,例如 modern-tar——一个零依赖、符合标准的TAR解析器。
- modern-tar 的架构将解析逻辑与I/O解耦,采用纯同步状态机设计,可在浏览器和Node.js等多种运行时环境中运行。
- 零拷贝环形缓冲区通过存储对输入数据的引用而非复制数据,最大限度地减少了内存分配和垃圾回收器的压力。
- 为处理并发和安全性问题,modern-tar 采用了基于承诺链的路径缓存机制,支持并行处理,同时保持严格的顺序执行,并能防止TOCTOU等漏洞。
- 基准测试显示,对于包含大量小文件的归档,modern-tar 比 node-tar 快1.4倍,比 tar-fs 快2.6倍,同时具有稳定、积极维护和在业界广泛采用的特点。