Back to Explore

streamich/memfs

GitHub
10 updates · last 90 days1 watchersOpen source

Last release:

memfs provides JavaScript file system utilities for Node.js and browsers, including an in-memory implementation of the Node.js fs API and the browser File System API. It’s useful for testing or running code that expects filesystem behavior without writing to a real disk, and it also includes adapters between the Node fs API and the browser File System API.

Project status

  • Actively maintained, GitHub updates are recent (2026-08-10, 2026-08-05, 2026-08-04), and the project continues to add fs and browser File System API adapter functionality plus behavioral fixes.
  • Update cadence appears steady and frequent, with new versions landing about every few days in early August 2026.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v4.68.1

    This release changes memfs unlink behavior so that attempting to unlink a directory does not remove it. The release notes mention empty directories specifically. The code also broadens the restriction to all directory cases and standardizes the thrown error to an EPERM-style error.

  • v4.68.0

    v4.68.0 adds support for a node creation time (birth time), exposing it through Node and the fs-compatible Stats APIs. The change introduces Node.btime, includes it in serialization, and updates stats generation so reported birthtime values are stable and distinct from ctime.

    BreakingFeatures
  • v4.67.0

    Release v4.67.0 primarily updates the memfs Git File System Access (git-fsa) browser demo to persist the user-selected directory handle and reuse it on later visits. The code diff also includes several demo build/runtime changes (IndexedDB handle storage, worker removal, and webpack/dev-server adjustments) that are not mentioned in the release notes.

    Features
  • v4.66.1

    Release v4.66.1 is a small build-focused change across the memfs monorepo. The only functional-area change shown in the diff is enabling inline sources for sourcemaps (to embed sources in published sourcemaps), alongside the usual version bumps across packages.

  • v4.66.0

    This release updates memfs to better handle Windows drive-letter file URLs and adjusts the package metadata around tslib peer dependencies. In addition to the documented behavioral fix, the implementation changes the underlying POSIX/Windows URL-to-path conversion logic and adds targeted tests.

  • v4.65.0

    Release v4.65.0 refactors directory listing in the File System Access API adapter (FsaNodeFs) to support the `recursive` option. It also adds additional test coverage around FileHandle behavior after unlinking.

    Features
  • v4.64.0

    Release v4.64.0 is described in the notes as “Fsa watch bridge improvements”. The actual diff shows broader watch-related changes across multiple packages, including new/extended `watch()` options (signal, ignore, throwIfNoEntry, buffer encoding) and updated abort semantics for `fs.promises.watch`.

    Features
  • v4.63.0

    This release introduces a Node.js fs.watch to File System Access (FSA) watcher bridge (“node-to-FSA watcher bridge”). It adds a new NodeFileSystemObserver implementation, wires it into the exports, and extends the fsa-to-node adapter behavior to support fs.watch/watchFile so events can flow across both stacks.

    Features
  • v4.62.0

    This release adds an FSA-to-Node watcher bridge, implementing Node-like `fs.watch` and `fs.watchFile` functionality for the `fs-fsa-to-node` adapter using the browser/FS `FileSystemObserver` (and polling for stat changes). New watcher classes (`FsaNodeFsWatcher`, `FsaNodeStatWatcher`) are introduced and wired into `FsaNodeFs` along with a configurable observer constructor. The release notes only mention the bridge at a high level.

    Features
  • v4.61.0

    This release (v4.61.0) primarily introduces a real implementation of `FileSystemObserver` in `fs-fsa`, replacing previously unimplemented methods. It also adds extensive tests to validate observer behavior, including Windows-specific hardening for test reliability.

    BreakingFeatures