yauzl

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

Library
npm
v3.4.0
825 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
40 /100 Fair
Development Activity 12
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
95%
Apache 2.0

AionUi

AI Agents · Productivity

33,179

Free, open-source Cowork desktop app that unifies Claude Code, Codex, Gemini CLI, and 20+ AI agents into a single platform with multi-agent teams, 24/7 cron automation, and zero-config built-in agent.

View details
85
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 95%
Updated 3 weeks ago
TypeScript
95%
AGPL 3.0

Docmost

CMS · Collaboration · Note Taking

21,801

Self-hosted collaborative wiki and knowledge base with real-time editing, diagrams, AI assistance, and enterprise access controls — a modern alternative to Confluence and Notion.

View details
89
Repo Health
70
Technical
69
Dependency
Built with
TypeScript 95%
Updated 5 days ago
Java
34%
Apache 2.0

Enso

Analytics · Data Engineering · Low Code Platforms

7,441

A visual and textual programming platform for data prep and analysis where the node graph and the underlying Enso code are always perfectly in sync, built by an Alteryx co-founder on a GraalVM engine.

View details
59
Repo Health
90
Technical
61
Dependency
Built with
Java 34%
TypeScript 27%
Scala 26%
Updated 1 months ago
TypeScript
90%
Other

FastGPT

AI Agents · AI Development

29,758

Build, debug, and deploy knowledge-based AI agents with a visual workflow editor, RAG retrieval, and support for any OpenAI-compatible LLM.

View details
93
Repo Health
84
Technical
66
Dependency
Built with
TypeScript 90%
Updated 4 days ago
TypeScript
98%
Other

Kibana

Analytics · Monitoring

21,301

Your open source window into the Elastic Stack — query, visualize, and act on data stored in Elasticsearch with real-time dashboards, AI-assisted search, and automated alerting.

View details
98
Repo Health
87
Technical
63
Dependency
Built with
TypeScript 98%
Updated 4 days ago
TypeScript
98%
MIT

Kimi Code CLI

AI Agents · AI Code Assistants · Developer Tools

7,705

A single-binary, terminal-native coding agent that reads, edits, and runs code end to end, built by Moonshot AI for Kimi models but pluggable with Anthropic, OpenAI, and Google providers too.

View details
82
Repo Health
87
Technical
67
Dependency
Built with
TypeScript 98%
Updated 4 days ago
TypeScript
82%
MIT

LibreChat

AI Assistants · Developer Tools

45,009

Unite every major AI model in one self-hosted chat platform with agents, code execution, MCP tools, and enterprise authentication.

View details
93
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 82%
JavaScript 17%
Updated 4 days ago
TypeScript
99%
Other

LobeHub

AI Assistants · Automation · Productivity

82,864

Your Chief Agent Operator — build, schedule, and collaborate with an entire AI team in one self-hostable workspace.

View details
92
Repo Health
81
Technical
66
Dependency
Built with
TypeScript 99%
Updated 4 days ago
TypeScript
95%
MIT

melty

AI Code Assistants · Code Editors · Developer Tools

5,444

The AI code editor where every chat message is a git commit you can revert, branch, or squash

View details
35
Repo Health
75
Technical
67
Dependency
Built with
TypeScript 95%
Updated 1 years 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