@anymux/union
v0.1.0
Published
Union file system that merges multiple file systems into one
Maintainers
Readme
@anymux/union
Union/overlay file system for AnyMux. Layer multiple file systems with configurable read/write precedence.
Installation
pnpm add @anymux/unionUsage
import { UnionFileSystem } from "@anymux/union";
import { MemoryFileSystem } from "@anymux/file-system/mem-fs";
const base = new MemoryFileSystem();
const overlay = new MemoryFileSystem();
// Writes go to overlay; reads check overlay first, then base
const fs = new UnionFileSystem([
{ fs: overlay, writable: true },
{ fs: base, writable: false },
]);
await base.writeFile("/config.txt", "default");
await fs.writeFile("/config.txt", "custom"); // written to overlay
const content = await fs.readFile("/config.txt", "utf-8"); // "custom"API Overview
Implements IFileSystem by composing multiple file systems into a layered stack.
- Read operations — search layers top-to-bottom, return first match
- Write operations — directed to the first writable layer
- Directory listings — merged across all layers, deduplicating entries
- Copy-on-write semantics when modifying files from read-only layers
License
MIT
