What is this?
JSZip is a JavaScript library for creating, reading, and editing .zip files, usable in both the browser and Node.js.
Is it a standalone app or a library I add to my own code?
It's a library you import into your own JavaScript project, not a standalone application.
How do I add it to a project?
Install it as an npm package and require/import it in Node.js, or include the browser build via a script tag for client-side use.
Do I need any other libraries alongside it?
It depends on 'lie', 'pako', 'readable-stream', and 'setimmediate' under the hood, but these come bundled as dependencies so you don't need to add them yourself.
Does it support both reading and writing zip files, or just one direction?
It supports both creating new zip files and reading/editing existing ones through the same API.
Does it work in the browser, or only server-side in Node?
JSZip runs in both environments: it has a browser build and a Node.js build, with separate test suites for each.
Can I compress or decompress files, or just package them unchanged?
Yes, compression is supported — JSZip uses the 'pako' library internally for deflate compression, in addition to being able to store files uncompressed.
Can I read a zip file that was generated by another tool, not just ones JSZip made?
Yes, JSZip can load and read arbitrary existing .zip files, not only ones it created itself, since reading is a core part of its API.
Does it work with large files or streams?
It depends on 'readable-stream' and 'setimmediate', suggesting support for stream-based and asynchronous processing of zip data, though exact size limits aren't detailed in the README.
What are similar projects?
socket.io-client, ua-parser-js, squoosh, comlink, redux-persist, jsdom, Mock, msw
Which topics is it in?
zip, compression, browser, gplv3, npm, frontend, api, nodejs, library, javascript, web, cross-platform