Releases: jvilk/BrowserFS
Releases · jvilk/BrowserFS
v0.6.0
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 anXmlHttpRequest
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
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
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
- Adds second constructor for
XmlHttpRequest.
Now you can create anXmlHttpRequest
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 appropriateENOTEMPTY
error.
v0.5.10
v0.5.9
v0.5.8
- 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
.
- Example: Reading the file
- Makes it possible to nest mounted file systems in the
MountableFileSystem
.- For example: You can mount a zip file to
/
, andlocalStorage
to/home
with no problems. If the zip file contains a directory called/home
, it will not be accessible from the file system.
- For example: You can mount a zip file to
- Fixes a serious buffer copy bug when using copy with buffer slices.
v0.5.7
v0.5.6
v0.5.5
- 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.