yauzl

A correctness-focused, streaming unzip library for Node.js

Library
npm
v3.4.0
831 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
39 /100 Needs Attention
Development Activity 8
Maintenance 0
Community 60
Maturity 60
Momentum 28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
66 /100 Good
Architecture 75
Code Quality 72
Innovation 58
Learning Curve 60

yauzl reads ZIP files in Node.js with an emphasis on correctness and low memory use: it parses the central directory rather than scanning entries sequentially, exposes each entry as a Node stream so large files never need to be buffered fully in memory, and refuses to auto-decompress paths that look unsafe (like entries escaping their target directory) unless you explicitly opt in.

It supports ZIP64 for archives and entries beyond the standard 4GB/65535-entry limits, works with password-free ZIPs (both stored and deflated entries), and offers both a callback-based and a promise/async-iterator-friendly API, making it a common low-level dependency underneath higher-level extraction tools and Electron’s asar/archive handling code.

What You Get

  • Central-directory-based parsing instead of naive sequential local-file-header scanning
  • Per-entry readable streams so large files can be extracted without full in-memory buffering
  • Opt-in protection against unsafe entry paths (zip-slip / directory traversal) via a validateEntrySizes-style option
  • ZIP64 support for archives and entries exceeding the classic 4GB/65535-entry limits
  • Both callback-based and for-await/async-iterator entry iteration APIs
  • Support for both stored (uncompressed) and deflated entries

Common Use Cases

  • Extracting user-uploaded ZIP archives on a server without loading the whole file into memory
  • Building CLI or GUI unzip tools that need entry-by-entry streaming control
  • Reading archive formats built on ZIP (like .xpi, .vsix, or Electron .asar-adjacent tooling) programmatically
  • Safely unpacking untrusted ZIP files where path-traversal protection matters

Under The Hood

Architecture - index.js locates and parses the End Of Central Directory record (with ZIP64 EOCD locator support) to build an authoritative list of entries, then lazily seeks to each entry’s local header on demand via fd-slicer.js (a companion module for safe, ref-counted file-descriptor slicing) to produce a readable decompression stream per entry, rather than reading the whole archive sequentially. Tech Stack - Pure Node.js (>=12) with a minimal dependency footprint (only pend for pending-callback coordination), relying on Node’s built-in zlib for DEFLATE decompression; no build step, plain CommonJS. Code Quality - The test/ directory includes dedicated fixtures for error conditions, ZIP64 archives, malformed/wrong-entry-sizes inputs, and success/failure archive pairs, reflecting a strong focus on spec-edge-case correctness over feature breadth. API Design - yauzl.open(path, options, callback) returns a ZipFile object whose readEntry()/entry event pair drives sequential streaming reads; this event-driven model requires slightly more boilerplate than a single extractAll() call, but gives callers precise control over memory use and which entries get decompressed.

Used by 17 apps in this directory

TypeScript
99%
Other

NocoBase

Low Code Platforms · No Code Platforms

24,686

Open-source AI + no-code platform that lets coding agents and people collaborate to build business systems fast on proven infrastructure.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
TypeScript 99%
Updated 5 days ago
TypeScript
97%
GPL 3.0

OpenKnowledge

Code Editors · Knowledge Management · Note Taking

4,674

A beautiful, local-first markdown IDE that turns any git repo into a live collaborative workspace for humans and AI coding agents like Claude, Codex, and OpenCode.

View details
80
Repo Health
89
Technical
64
Dependency
Built with
TypeScript 97%
Updated 5 days ago
TypeScript
98%
Other

Outline

Collaboration · Knowledge Management

41,045

A fast, real-time collaborative knowledge base for growing teams built on React, Node.js, and ProseMirror.

View details
91
Repo Health
87
Technical
68
Dependency
Built with
TypeScript 98%
Updated 5 days ago
JavaScript
64%
AGPL 3.0

overleaf

Collaboration · Productivity

18,266

Open-source, real-time collaborative LaTeX editor with sandboxed compilation and full TeXLive support for self-hosted academic and research teams.

View details
84
Repo Health
80
Technical
59
Dependency
Built with
JavaScript 64%
TypeScript 30%
Updated 1 months ago
TypeScript
91%
AGPL 3.0

PeerTube

Social Media

15,362

A federated, ActivityPub-based video hosting platform built by Framasoft — self-hostable instances interconnect into a network with no vendor lock-in, P2P-assisted streaming, and no ads.

View details
96
Repo Health
75
Technical
66
Dependency
Built with
TypeScript 91%
Updated 1 weeks ago
TypeScript
98%
Apache 2.0

rowboat

AI Assistants · AI Development

18,060

Build, test, and deploy multi-agent AI workflows with a visual editor, RAG data sources, MCP tool integration, and a production-ready REST API.

View details
88
Repo Health
72
Technical
65
Dependency
Built with
TypeScript 98%
Updated 6 days ago
JavaScript
86%
AGPL 3.0

SillyTavern

AI Assistants

34,869

The power-user LLM frontend that unifies dozens of AI backends with a rich scripting engine, immersive Visual Novel mode, and a thriving extension ecosystem.

View details
88
Repo Health
71
Technical
63
Dependency
Built with
JavaScript 86%
Updated 3 weeks ago
TypeScript
95%
Apache 2.0

Void

AI Code Assistants · Automation · Code Editors

28,733

Open-source AI code editor with direct LLM integration and data privacy

View details
44
Repo Health
84
Technical
68
Dependency
Built with
TypeScript 95%
Updated 4 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers