Skip to content

Releases: jvilk/BrowserFS

v0.6.0

29 Aug 01:51
Compare
Choose a tag to compare

This release brings the following new features:

  • New backend: Emscripten: The Emscripten backend lets you mount an Emscripten file system within BrowserFS. Thanks to @Narazaka for the initial code and the idea!

There are also a number of important bugfixes+optimizations:

  • OverlayFS: Fixes a serious bug in deletion logic that prevented you from deleting a file, and then re-writing it later. Also includes logic to prevent your code from manipulating the deletion log.
  • OverlayFS: readFile optimization when used with an XmlHttpRequest backend, which is a common case; avoids a round-trip to the server to determine the size of a file. Thanks, @bpowers!

v0.5.13

19 Aug 00:27
Compare
Choose a tag to compare

This is primarily a bugfix release... although there are some new features, too!

  • OverlayFS now supports asynchronous overlays! Now you can have any combination of file systems in an OverlayFS. (Thanks, @bpowers!)
  • Restores IE8 compatibility. We had some bugs preventing BrowserFS from working on IE8. We'll probably remove IE8 support soon, though...
  • Removes debug callback wrapping. BrowserFS used to wrap every callback it received, letting our unit tests automatically determine if there are any pending asynchronous API calls. We now strip this from release builds. (Thanks, @hrj!)
  • No longer calls document.write if asynchronously loaded. Previously, we unconditionally injected an IE8/IE9 VBScript function that lets us perform binary XHR in those browsers. Now, we check if the page is loaded; if so, we inject a <script> tag instead.
  • Misc small bug fixes! Too many to list here!

The next release may be a bigger one. I am likely going to drop IE8 and IE9 support so we can switch over to using Uint8Array-based Buffers for a large performance gain. Since most of the users of this library are using it in Emscripten, this is unlikely to negatively impact most of you.

v0.5.12

24 Feb 07:08
Compare
Choose a tag to compare

Changelog:

  • ZipFS can now generate zip indexes responsively. See sample code below.
  • OverlayFS and AsyncMirror throw exceptions if a program uses them before initializing them.
  • IE9 compatibility fix. Under particular circumstances, BrowserFS would trigger a Uint8Array not defined. exception

The ZipFS change lets you generate a zip file's index prior to creating the file system:

ZipFS.computeIndex(zipAsBuffer, function(index) {
  var zfs = new ZipFS(index);
});

The older new ZipFS(zipAsBuffer) signature continues to work, as well, but that will synchronously populate the zip index.

Credit goes to @hrj for this contribution!

v0.5.11

15 Jan 05:32
Compare
Choose a tag to compare
  • Adds second constructor for XmlHttpRequest. Now you can create an XmlHttpRequest file system by providing the JSON object directly, instead of a URL to a JSON object. This will eventually become the default constructor.
    • Thanks to @hrj for this change!
  • Fixes bug where some file systems let you delete non-empty directories. Any FS using {Sync,Async}KeyValueFileSystem had this bug, as well as HTML5FS. Now we test that file systems raise the appropriate ENOTEMPTY error.

v0.5.10

31 Dec 15:47
Compare
Choose a tag to compare
  • Properly initializes stdout/stdin/stderr streams synchronously. Previously, users had to call process.initializeTTYs() themselves. Now, we call it within this library, so the streams are available immediately after BrowserFS loads.

v0.5.9

31 Dec 04:37
Compare
Choose a tag to compare
  • Fixes stdout/stderr/stdin streams. Previously, they did not emit any events when you wrote to them. Whoops.

v0.5.8

13 Dec 19:58
Compare
Choose a tag to compare
  • Adds a FolderAdapter backend that can wrap another file system, and scopes all interactions to a subfolder of that file system.
    • Example: Reading the file test.txt in a FolderAdapter constructed like so: new FolderAdapter('/home', otherFS) will actually read /home/test.txt.
  • Makes it possible to nest mounted file systems in the MountableFileSystem.
    • For example: You can mount a zip file to /, and localStorage to /home with no problems. If the zip file contains a directory called /home, it will not be accessible from the file system.
  • Fixes a serious buffer copy bug when using copy with buffer slices.

v0.5.7

13 Nov 16:23
Compare
Choose a tag to compare
  • Fixes a bug in Buffer => Arrayish conversions. This bug only manifests itself with zero-length buffers, and was only found with external code (DoppioJVM) interacting with the method directly.

v0.5.6

13 Nov 00:25
Compare
Choose a tag to compare
  • Expose internal state of ZipFS. Adds functions to ZipFS that exposes its internal state.

v0.5.5

10 Nov 19:34
Compare
Choose a tag to compare
  • ZipFS now works with non-BrowserFS buffers. Previously, it would fail because it would try to use the unsupported string encoding extended_ascii, which I custom wrote for BrowserFS buffers. I broke that out into a submodule so it can be used with other buffer implementations, so now ZipFS works.