Skip to content

Commit 4bdda9a

Browse files
committed
Update README.md
1 parent 0197850 commit 4bdda9a

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ Some differences with JS7z include:
4242
- Runs almost entirely in separate worker threads
4343
- Can use all available CPU cores for compression/decompression
4444
- Safe; forces proper memory resets after each use
45+
- Handles archives over 2GiB in size
4546
- The runtime and threads/workers automatically quit upon completion
4647
- Asynchronous completion callbacks with exit statuses/reasons
4748
- Improved exception handling coverage (optional; increases build size)
@@ -131,7 +132,7 @@ Other notes:
131132

132133
- This page will only work when hosted on a proper local or remote web server.
133134
- The web server should be configured with 'Cross-Origin Isolation' (preferred), **or** the browser can be started with `SharedArrayBuffer` enabled, **or** you can add a loader to display the page with the correct headers configured (surprisingly, this is possible).
134-
- The `callMain([])` array strings are the same as the individual 7-Zip command-line arguments.
135+
- The `callMain([])` array strings are identical to the command-line version of 7-Zip on desktop systems, with the exception of how they are formatted.
135136

136137
Using JS7z in Node.js
137138
---------------------
@@ -206,12 +207,14 @@ console.info(Object.keys(js7z.FS));
206207

207208
You can use `js7z.NODEFS`, `js7z.WORKERFS` and `js7z.PROXYFS` as the first parameter of `js7z.FS.mount()` to mount more file system types, providing you are using a build with those features enabled.
208209

210+
Note that it is possible to work on files over 2GiB in size -- this limit only affects the processing part of 7-Zip, which is mostly used by internal compression/decompression dictionaries. It does not affect in-memory filesystem objects, which are allocated outside of the WebAssembly 'heap'.
211+
209212
Bypassing the File System
210213
-------------------------
211214

212-
Like in Unix/Linux systems, you *can* manually pipe data to and from `stdin` and `stdout`, thereby bypassing the file system and Emscripten's 2GB in-memory storage limit. This does not work in all situations because compressing some file formats requires random access to files (e.g. to update tables of contents), so doing this is not usually recommended or necessary.
215+
Like in Unix/Linux systems, you *can* manually pipe data to and from `stdin` and `stdout`, so you can avoid loading certain filetypes all at once. This does not work in every situation, and is not usually recommended, because compressing/decompressing many file formats requires random access to files (e.g. to query or update tables of contents).
213216

214-
With `NODEFS` backend mounts, the storage limit should not be a problem.
217+
With `NODEFS` backend mounts, files can be randomly accessed directly on storage.
215218

216219
Multi-Threaded vs. Single-Threaded Builds
217220
-----------------------------------------
@@ -268,7 +271,7 @@ Usage of these compilation flags will be displayed in 7-Zip's output.
268271

269272
Selecting extra exception catching will add `+EC` to the flags. This feature allows you to see further details of failures, such as extraction security issues, corrupt archive data, and incorrect passwords. Using this increases the build size, so it is switched off by default.
270273

271-
At the final stage of the build, `js7z.js` and `js7z.wasm` will be written into the `Alone2/b/g` folder. If multi-threaded mode is chosen, `js7z.worker.js` *may* be added. On recent versions of Emscripten, this file is an unused compatibility stub and can be deleted.
274+
At the final stage of the build, `js7z.js` and `js7z.wasm` will be written into the `Alone2/b/g` folder.
272275

273276
---
274277

0 commit comments

Comments
 (0)