finds.dev

ebidel/idb.filesystem.js

HTML5 Filesystem API polyfill using IndexedDB

View on GitHubHomepage ↗

★ 488JavaScriptNOASSERTIONupdated Oct 2020

// the take

A polyfill that implements the old HTML5 Filesystem API on top of IndexedDB, so code written against `window.requestFileSystem` could run in Firefox, Safari, and IE instead of just Chrome. It's for anyone who was targeting that API around 2013-2015 and needed cross-browser support without rewriting to IndexedDB directly.

The core idea is sound: it maps Filesystem API's directory/file entry model onto IndexedDB's object stores, which is a legitimate way to backfill a hierarchical API on a key-value store. It ships with a QUnit test suite and two working demo apps (drag-and-drop file upload, a filer.js-based file browser), so you can actually verify behavior rather than trust the README. Pairs with filer.js for a nicer cp/mv/ls-style API on top.

The Filesystem API it polyfills was a Chrome-only proposal that W3C abandoned and Chrome itself has since removed in favor of the Origin Private File System / File System Access API — the thing this library exists to backfill no longer exists as a target. No commits since 2020 and the underlying spec work stopped years before that, so there's no one to fix IndexedDB quota or transaction-timing bugs if you hit them. It's UMD/ES5 with no TypeScript types and no module-based build story, so wiring it into a modern bundler setup is friction for no real payoff today. Anyone needing durable browser storage in 2026 should go straight to the File System Access API or IndexedDB directly rather than through this abstraction.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
488
Forks
47
Language
JavaScript
License
NOASSERTION
Last commit
25 Oct 2020

// nearby

If idb.filesystem.js isn't quite it.

All repos →