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
Cryptgeon
File Storage · Security
Self-destructing encrypted notes and files that vanish after viewing — the server never sees your keys.
Dokploy
Devops · Hosting Control Panel · Security
Self-hosted PaaS that deploys apps and databases on your own VPS using Docker, Traefik, and multi-build-system orchestration
GB Studio
Design Tools · Developer Tools · Game Development
Drag-and-drop retro Game Boy game creator that compiles real ROMs — no coding required.
GDevelop
Design Tools · Developer Tools · Game Development
No-code, open-source game engine for building 2D, 3D and multiplayer games — publish to iOS, Android, Steam and the web.
HyperFrames
AI Design Tools · AI Development
Turn plain HTML and CSS into deterministic, pixel-perfect MP4 videos — authored by humans or AI agents, rendered by headless Chrome and FFmpeg.
InsForge
Databases · Developer Tools
The all-in-one, open-source backend platform purpose-built for AI coding agents — giving your agent database, auth, storage, edge functions, a model gateway, and compute to ship full-stack apps end-to-end.
Joplin
Note Taking
The privacy-first, open-source note-taking app with end-to-end encrypted sync, AI assistance, and a powerful plugin ecosystem across every platform.
Karakeep
Bookmarks Archiving
Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.
Kibana
Analytics · Monitoring
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.