BrowserFS ZipFS Extras v1.0.1
Note: Requires BrowserFS v1.1 and up!
Adds the following decompression algorithms to BrowserFS, which were used in older versions of PKZip:
- EXPLODE and UNSHRINK (ported from Info-Zip's GPL2'd code)
- UNREDUCE (ported from this GPL2 code)
Although BrowserFS is licensed under the MIT license, this add-on library is based on GPL2 code and is provided under the GPL2 license.
Simply include browserfs.js and
browserfs-zipfs-extras.js on the same page, and BrowserFS will know how to decompress these extra algorithms.
Make sure you include
browserfs-zipfs-extras as dependencies of your project. Then, simply
browserfs-zipfs-extras before you begin using
const BrowserFS = require('browserfs'); require('browserfs-zipfs-extras'); // Now you can use BrowserFS.
Requires a reasonably recent version of Node. Run:
$ npm install
NOTE: You must have Git LFS installed and use it to clone the repository. We use Git LFS to manage our test fixtures, which are a bunch of zip files.
$ npm test
We emulate pointers and pointer arithmetic with the
takes an array and an offset into the array.
extensively use pointers into Huffman tables as well as pointer arithmetic
to iterate through table values!
To reduce object allocations, most
Ptr manipulations edit the value of
Ptr rather than create a new one. As a result, developers
maintaining this project must be cognizant of
Ptr aliasing; if two places
contain the same
Ptr object, then manipulating one will change the other!