Skip to content

LayerFS v1.0.0 — first official release

Latest

Choose a tag to compare

@yifanxuaaa yifanxuaaa released this 21 Oct 11:21

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, branch and project calls 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 fail Unsupported.
  • 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 replaces sandbox.create, mount and close.
  • Better merges. Entries merge by identity, branch.merge merges by unit,
    files with equal bytes are never a conflict, and mode and mtime merge
    separately, so a chmod survives 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
    UpToDate before 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 exec output 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 the sdk_sim terminal
    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 sandbox methods are replaced by workspace, and sdk_sim is
    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