Skip to content

Releases: jvilk/BrowserFS

v0.4.0

19 Jun 06:37
Compare
Choose a tag to compare

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 with AsyncMirror, you can persist changes to a read-only filesystem to data stores like Dropbox or IndexedDB.
  • BrowserFS should now work with your module system of choice!
    • CommonJS, AMD, UMD, exposing a BrowserFS global...
  • 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.

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

09 Feb 19:05
Compare
Choose a tag to compare
  • 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 takes FS, PATH, and ERRNO_CODES as optional arguments to its constructor.

v0.3.6

06 Jan 19:35
Compare
Choose a tag to compare

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

11 Sep 20:14
Compare
Choose a tag to compare

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

09 Feb 06:18
Compare
Choose a tag to compare

Fixed a serious bug in ZipFS that prevented it from properly detecting directories in some zip files.

v0.3.3

08 Feb 20:00
Compare
Choose a tag to compare

Version 0.3.3 has the following fixes/feature improvements:

  • stderr/stdout/stdin are mostly proper Readable/Writable streams, and implement the appropriate EventEmitter 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

30 Jan 20:43
Compare
Choose a tag to compare

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

13 Dec 19:24
Compare
Choose a tag to compare

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 capacity
  • XmlHttpRequest 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

31 Jul 04:30
Compare
Choose a tag to compare

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.