Repository navigation
LayerFS v1.0.0
LayerFS 1.0.0 is the first official release after the 0.1.x Developer Previews.
Each agent mounts a complete, writable Workspace over shared committed history,
does its work, commits what it changed, and goes away.
layerfs-v1.0.0-release-720p.mp4
What's new since v0.1.7
- Store calls run in your process.
fs,branchandprojectcalls open
the project's Store file directly; no Sandbox starts for them. This needs Linux
with the Store on ext4, xfs or btrfs; elsewhere these calls failUnsupported. - Workspace API with numbered Sandboxes.
workspace.mount(branch)places the
Workspace in the project's Sandboxes on its own and starts another one when the
running ones each hold 16 Workspaces. Each Sandbox runs one image and closes
itself after 2 idle minutes. This replacessandbox.create,mountandclose. - Better merges. Entries merge by identity,
branch.mergemerges by unit,
files with equal bytes are never a conflict, and mode and mtime merge
separately, so achmodsurvives an edit. The publish lock now covers only the
publish step. - Faster reads and Commits. File reads share caches and scan each file once,
stored reads run without a transaction, an unchanged Workspace answers
UpToDatebefore capturing anything, and history walks have no 4,096-step cap. - Smaller Stores. A file saved by rename-over, such as Git's index, is stored
as a delta against the file it replaced. Mode and mtime are stored inline, and a
new file reuses bytes a saved tree already holds. - Large command output. The 1 MiB
execoutput cap is gone; large output is
paged. - Troubleshooting telemetry. An opt-in per-call trace (
LAYERFS_TRACE) and
phase timing for Commit, mount and merge. - LayerFS tab in DeepSeek Harness. The LayerFS UI is now the DSH plugin, with
each project's History, Sandboxes and Files. It replaces thesdk_simterminal
UI, which is removed.
Results
Each suite ran once on main at e5c7aaae05 through the JavaScript SDK.
| Suite | LayerFS 1.0.0 |
|---|---|
| fs-bench, Cloudflare Computer's own suite | 5.20 s vs 8.88 s, 1.71× faster; faster in 10 of 12 scenarios |
| dsh-dedup, 157 snapshots of a real project | 100.1 MB vs 1,994.6 MB, 19.9× smaller than Btrfs + zstd |
| pjdfstest, POSIX conformance | 0 unexpected failures against kernel overlayfs |
| fsx and fsstress, data integrity | 14/14 pass, 0 miscompares; 3,755/3,755 entries identical after Commit and remount |
| smallfile, mdtest, fio | Faster than libfuse passthrough on small files and metadata; slower on sequential writes (0.31×) |
One sample per case; host and load are recorded on each page. These are release
measurements, not a guarantee for your workload.
Compatibility
- Versioning. From 1.0.0 on, an incompatible change to the JavaScript SDK
needs a new major version. - Stores. Stores made by v0.1.7 or earlier are refused; run
project.init
again. - SDK. The
sandboxmethods are replaced byworkspace, andsdk_simis
removed. - Version matching. The SDK, its native addon and the daemon must come from
this tag. - Store profile. Only the Disposable profile runs: there is no crash or
power-loss durability.
The release is source-only: no npm package, prebuilt binary or public image.
Links
- README and the JavaScript SDK guide
- Docs and benchmarks on layerfs.ai
- Community: Discord