| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| forkd-v0.5.2-x86_64-linux.tar.gz | 2026-06-08 | 7.1 MB | |
| SHA256SUMS | 2026-06-08 | 99 Bytes | |
| README.md | 2026-06-08 | 3.5 kB | |
| v0.5.2 source code.tar.gz | 2026-06-08 | 1.3 MB | |
| v0.5.2 source code.zip | 2026-06-08 | 1.4 MB | |
| Totals: 5 Items | 9.8 MB | 0 | |
v0.5.2 is a small feature + security-fix release headlined by forkd's first external contribution.
🎉 First external PR — @theflashwin
#230 plumbs hugepage-backed memfd snapshots end-to-end — Rust MemoryBackend::MemfdShared { use_hugepages: bool }, REST + CLI + Python SDK + TypeScript SDK all carry the flag, a forkd doctor hugepage-pool check, an ENOMEM → normal-page fallback with warning, and a fresh A/B bench harness (bench/live-fork-pause-window/bench-hugepages.py) that interleaves baseline/hugepages iterations for fair numbers.
Unusually complete for a first PR. Welcome aboard, @theflashwin.
What it does
Sandboxes spawned with --live-fork can now back their guest RAM with 2 MiB hugepages (MFD_HUGETLB | MFD_HUGE_2MB) instead of 4 KiB pages, reducing TLB pressure on spawn-many and live-BRANCH bulk-copy. Opt in per spawn:
:::bash
# CLI
forkd fork --tag my-snapshot --live-fork --hugepages -n 10
# REST
POST /v1/sandboxes { "snapshot_tag": "my-snapshot", "live_fork": true, "hugepages": true, "n": 10 }
# Python SDK
sandbox = Sandbox.spawn(tag="my-snapshot", live_fork=True, hugepages=True)
# TypeScript SDK
const sb = await client.sandboxes.create({ snapshotTag: "my-snapshot", liveFork: true, hugepages: true });
Pre-flight check: forkd doctor now reports HugePages_Total / HugePages_Free. Reserve pages with echo 512 | sudo tee /proc/sys/vm/nr_hugepages before use.
N=4 spawn numbers from @theflashwin's hardware are in the PR README. N=100 numbers are deferred to #234 — fresh dev-host setup needed.
🔒 axum-server 0.7 → 0.8 — closes [#192]
Drops the unmaintained rustls-pemfile dependency flagged by RUSTSEC-2025-0134. The daemon's TLS path now goes through rustls-pki-types directly. Internal-only change; HTTPS bind / cert loading are byte-compatible.
cargo audit on forkd v0.5.2 is now clean (0 advisories). (#232)
📚 Non-AI recipes
recipes/README.md now leads with a "by problem you're solving" table that surfaces CI test parallelization, database fixture forking, and browser farming alongside the AI-agent use case, instead of pitching forkd as AI-only.
New recipe recipes/ci-parallel-pytest ships a complete Python pytest fan-out demo (5 test files, ~30 tests across numpy / pandas / sklearn / regex / stdlib) backed by a forkd snapshot so each worker starts with import numpy etc. already paid for in the parent. Dev-box numbers: ~20 ms per worker batch-spawned vs ~2–3 s per cold container. (#231)
Install / upgrade
:::bash
# Linux x86_64 binary (forkd + forkd-controller + forkd-uffd-handler)
curl -L https://github.com/deeplethe/forkd/releases/download/v0.5.2/forkd-v0.5.2-x86_64-linux.tar.gz | tar xz
# Python SDK
pip install -U forkd==0.5.2
# TypeScript / Node SDK
npm install @deeplethe/forkd@0.5.2
No breaking changes — --hugepages requires --live-fork; everything else is additive. Existing spawn / branch flows work unchanged.
Thanks
- @theflashwin — first external contribution; hugepage memfd path
- Everyone who filed RUSTSEC-2025-0134 follow-ups (#192)
Full Changelog: https://github.com/deeplethe/forkd/compare/v0.5.1...v0.5.2