Releases: jvilk/BrowserFS
v0.4.0
BrowserFS v0.4.0 comes with the following new features:
- New file systems:
OverlayFS
: Overlay a writable synchronous filesystem over a readable file system, letting programs modify read-only data sources and storing only the changed files.AsyncMirror
: Mirror a synchronous file system to asynchronous storage.- If you pair
OverlayFS
withAsyncMirror
, you can persist changes to a read-only filesystem to data stores like Dropbox or IndexedDB.
- If you pair
- BrowserFS should now work with your module system of choice!
- CommonJS, AMD, UMD, exposing a
BrowserFS
global...
- CommonJS, AMD, UMD, exposing a
- Faster zip support via pako!
- And by actually telling the inflate algorithm how big the inflated file will be...
- Bug fixes for EmscriptenFS
- We now ignore certain types of
ENOTSUP
failures for operations that Emscripten likes to perform, but couldn't care less about. Previously, these failures caused Emscripten to prematurely terminate.
- We now ignore certain types of
Some internal bits:
- Added dirty bit to
PreloadFile
to avoid unneeded syncs. - Switched to Browserify for modules.
- Switched to Mocha for unit testing, and cleaned up unit tests.
Enjoy!
v0.3.7
- Experimental WebWorker support through the new WorkerFS backend.
- Map the main browser context's FS into your WebWorker's FS, or your WebWorker's FS into the main context's FS!
- Like always, tested in all of the major browsers (Chrome/Safari/IE11/Presto-based Opera/Safari).
- EmscriptenFS change to support the new
MODULARIZE
argument. EmscriptenFS now takesFS
,PATH
, andERRNO_CODES
as optional arguments to its constructor.
v0.3.6
The EmscriptenFS now invokes utimesSync
whenever it writes a file, but it doesn't really require the value to be set. Many BFS backends do not support utimesSync
, causing a failure whenever Emscripten wrote a file to BFS.
Thus, I modified the BFS backend to ignore ENOTSUP
errors that occur with setattr
, which fixes the issue.
v0.3.5
Changes:
- IndexedDB file system.
- Clean key-value storage file system abstraction, in case we want to layer file systems on arbitrary key-value storage systems.
- Revamped localStorage file system built atop the key-value storage file system abstraction.
- Misc. bug fixes.
v0.3.4
v0.3.3
Version 0.3.3 has the following fixes/feature improvements:
stderr/stdout/stdin
are mostly proper Readable/Writable streams, and implement the appropriateEventEmitter
interface.
Some notes about our implementation:
- Duplex streams (which
stderr/stdout/stdin
all are, as we are emulating these OS resources) emit the_read
event when its buffer is empty and someone is trying to read from it.
In the future, we might decide to bind more closely to Node's implementation of streams, including its extendable abstract implementations.
v0.3.2
Releasing v0.3.2.
Changes:
- IE9 uses a more memory efficient and faster BufferCore backed by ImageData objects.
- IE11 works properly now. We previously had some XmlHttpRequest issues with it.
- Basic stdin/stderr/stdout support for process. Library users can register callbacks with each of them.
v0.3.1
Version 0.3.1 is a massive improvement over 0.2.0.
New features:
- BrowserFS can now be used in Emscripten applications in the Emscripten virtual file system! (applies to synchronous backends only)
New backends:
- Dropbox
- HTML5 FileSystem
- Zip filesystem
Existing backend improvements:
localStorage
backend now packs 2 bytes per UTF-16 character in compatible browsers, doubling storage capacityXmlHttpRequest
backend now supports synchronous download requests
Performance improvements:
- Drastically reduced copying through
BufferCore
abstraction - Dramatic performance improvements for browsers without typed arrays
- Over halved memory usage in browsers without typed arrays
Node compatibility improvements:
- BFS errors now correctly contain the
code
property, which references a libc error code
Development changes:
- Converted entire codebase from CoffeeScript to TypeScript!
- BFS now uses AMD modules. The release build is packaged using R.JS and Almond
- We generate source maps now
And many, many bug fixes!
v0.2.0
This is the first Doppio-compatible release.
Some details:
- The
localStorage
file system now supports the synchronous Node fs API, and stores file properties (mode, mtime, atime, etc). - We have a working file system that supports mounting (
MountableFileSystem
). - We have an
XmlHttpRequest
file system that works properly. - Now provides the file system for Doppio!
There are a number of current bugs, but I am tagging this for now so that Doppio can switch to using Bower to fetch this dependency.