zip.js
objectbuffer
zip.js | objectbuffer | |
---|---|---|
5 | 4 | |
3,280 | 161 | |
- | - | |
9.1 | 2.9 | |
4 days ago | 6 days ago | |
JavaScript | TypeScript | |
BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
zip.js
-
Pigz: Parallel gzip for modern multi-processor, multi-core machines
Similarly, if people are interested, I have coded the possibility to compress zip files on several cores in zip.js [1]. The approach is simpler as it consists of compressing the entries in parallel. It still offers a significant performance gain though when compressing multiple files in a zip file, which is often the nominal case.
[1] https://github.com/gildas-lormeau/zip.js
-
Is there an online reader for books from Libgen?
This shouldn't be an issue. There are JS libraries that can decompress zip (e.g. https://gildas-lormeau.github.io/zip.js/). Nowadays even huge C/C++ codebases can be compiled into JS via Emscripten.
- [HELP] Create password protected ZIP with JavaScript Library
-
isoworker - universal multithreading with main-thread dependencies, 6kB
Well, you can build zip.js with fflate if you want to, see https://github.com/gildas-lormeau/zip.js/blob/master/rollup-fflate.config.js. I wasn't saying that zip.js is faster than fflate or any other library. I'm just saying it can compress files in parallel.
- Zip.js v2
objectbuffer
-
JavaScript APIs You Don’t Know About
is a great example, which I also tried to (poorly) reimplement myself.
It creates a new data structures that behave as an object for the user but is backed by SharedArrayBuffer in order to support parallel computation over it.
- [0]: https://github.com/Bnaya/objectbuffer
- Web Crypto API
-
isoworker - universal multithreading with main-thread dependencies, 6kB
There is a lot of complexity involved in representing arbitrary javascript objects inside an ArrayBuffer whilst making them thread-safe. I'd first point to a library like objectbuffer. There's also more fixed struct-like options such as Google's FlatBuffers or buffer-backed-object.
What are some alternatives?
JSZip - Create, read and edit .zip files with Javascript
proposal-atomics-wait-async - "asynchronous atomic wait" for ECMAScript
fast-zlib - Shared context synchronous compression
d2-checklist - Source for www.d2checklist.com, written in Angular and using the Bungie API
yazl - yet another zip library for node
comlink - Comlink makes WebWorkers enjoyable.
text-generator - A naive text generator built in JavaScript using Markov chains.
worktank-loader - WebPack plugin for WorkTank which enables you to execute whole files in a worker pool, transparently.
tar-transform - extract, transform and re-pack tarball entries in form of stream with very simple api
worktank - A simple isomorphic library for executing functions inside WebWorkers or Node Threads pools.
tar-stream - tar-stream is a streaming tar parser and generator.
wasm-futures-executor - Executor for asynchronous task based on wasm web workers.