ADM-ZIP
A pure JavaScript zip compression library for Node.js, with no native dependencies
Repository Health
Technical Analysis
ADM-ZIP is a pure JavaScript implementation of zip data compression for Node.js. It lets applications decompress zip files directly to disk or in-memory buffers, compress files into .zip archives or compressed buffers, and update the content of an existing zip archive — adding, replacing, or deleting entries — without shelling out to a native zip/unzip binary.
Because it has no other Node.js library dependencies and no native bindings, ADM-ZIP works consistently across platforms, including inside Electron apps, where its README documents specific filesystem-access considerations.
What You Get
- Zip reading and extraction to disk or in-memory buffers, including password-protected entries
- Zip creation from files, directories, or raw buffers, with per-entry comments
- In-place archive editing: adding, deleting, or replacing entries in an existing
.zipfile - Zero runtime dependencies on other Node.js packages or native binaries
- Documented Electron filesystem-access support for apps that need zip handling inside an Electron renderer/main process
Common Use Cases
- Extracting uploaded
.ziparchives (e.g. plugin bundles, dataset uploads) server-side without invoking a systemunzip - Packaging build output or generated files into a downloadable
.ziparchive from a Node.js script or API endpoint - Reading specific files out of a zip archive in memory without extracting the whole archive to disk
- Programmatically patching an existing
.zipfile — adding or removing entries — as part of a build or release pipeline
Under The Hood
Architecture - the library is organized around three core files: adm-zip.js (994 lines) exposes the public AdmZip class and orchestrates reading/writing/updating, zipFile.js (456 lines) models the zip container and its central directory, and zipEntry.js (390 lines) models an individual archive entry (name, compressed/uncompressed data, header); the methods/ directory isolates the compression codecs (deflater.js, inflater.js) and zipcrypto.js for password-protected entries behind a small index.js facade. Tech Stack - plain CommonJS JavaScript with a hand-authored types.d.ts for TypeScript consumers, zero third-party runtime dependencies (README explicitly calls this out), and a headers/ module implementing the zip file format’s binary header structures directly per the bundled APPNOTE.md (the official PKWARE zip spec) reference doc. Code Quality - the test/ directory has 23 test files, CI runs via GitHub Actions on every push, and a SECURITY.md documents a vulnerability-reporting process, but there is no visible fuzz-testing or property-based testing for the binary parsing logic, which is a common risk area for hand-written archive-format parsers. API Design - the AdmZip class centers on a small number of intention-revealing methods (getEntries, readAsText, extractEntryTo, extractAllTo, addFile, writeZip) that cover the read/write/update use cases without requiring the caller to understand the zip format internals, though the API predates modern async/Promise conventions and remains largely synchronous.
Used by 25 apps in this directory
Amplication
Developer Tools · AI Code Assistants · Automation
Create production-ready backend services with your organization's standards baked in — generating NestJS, Prisma, and GraphQL code that you own and control.
AnythingLLM
Developer Tools · Automation · AI Assistants
The all-in-one AI platform for private document chat, no-code agents, and local LLMs with zero setup friction.
Blinko
Knowledge Management · Note Taking
A self-hosted, AI-powered card note-taking tool that lets you capture fleeting thoughts instantly and retrieve them with natural language search.
Cherry Studio
AI Assistants
All-in-one AI desktop client with 300+ assistants and multi-model support
Codebuff
AI Code Assistants
An open-source AI coding assistant that coordinates specialized agents to edit your codebase from natural language — including Freebuff, a free, ad-supported version powered entirely by open-source models like DeepSeek and Kimi.
Colanode
Knowledge Management · Team Chat · Collaboration
Local-first, self-hosted workspace that combines real-time chat, Notion-style pages, and structured databases — all synced via CRDTs so you work offline without losing a keystroke.
Continue
Developer Tools · AI Development · AI Code Assistants
Open-source coding agent for VS Code, JetBrains, and CLI with support for 30+ LLM providers.
Convex Backend
Developer Tools · Databases
Open-source reactive database that lets developers build live-updating apps with pure TypeScript, strong consistency, and real-time subscriptions—no separate API layer required.
CourseLit
Ecommerce · Blogging
Open-source, self-hosted LMS for selling online courses, digital downloads, and building communities on your own branded website.