<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>sandbox-lifecycle on tomrochette.com</title>
    <link>https://tomrochette.com/tags/sandbox-lifecycle/</link>
    <description>Recent content in sandbox-lifecycle on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Sat, 31 Oct 2026 04:26:09 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/sandbox-lifecycle/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Sandstorm</title>
      <link>https://tomrochette.com/agents/sandboxing/sandstorm/</link>
      <pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/sandboxing/sandstorm/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>sandboxing</category><category>microvm</category><category>gvisor</category><category>firecracker</category><category>sandbox-lifecycle</category>
      <description>&lt;p&gt;Sandstorm is a self-hosted Rust platform that fits thousands of agent sandboxes onto machines by pausing idle ones, snapshotting them to disk, and restoring them quickly when traffic arrives.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sandstorm&amp;rsquo;s bet is that agent sandboxes idle most of the time, so a tiered pause-snapshot-restore lifecycle, not bigger machines, is what makes a sandbox fleet affordable.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;One binary, &lt;code&gt;sandstormd&lt;/code&gt;, serves as the master, the node agent, and the web console, with the master holding desired state in SQLite and placing sandboxes across nodes.&#xA;Sandboxes run in one of two backends, gVisor containers or Firecracker microVMs, each sandbox in its own network namespace, and both backends can pool in one fleet.&#xA;The lifecycle has four tiers: hot (running), frozen (paused, cold pages in zswap, about 0.1 s back to hot), snapshot (checkpointed to disk, about 0.2 s back), and detached (volume only, cold start).&#xA;Nodes join by address and pairing code or dial out from behind NAT, a per-node gateway wakes a sandbox on incoming traffic, and nodes refuse new work under memory pressure so the host stays reachable.&#xA;Apache-2.0, by DeepLethe (whose own site, deeplethe.com, is a Chinese-language company page), created 2026-05-11 under the name forkd and since renamed (the old path redirects; a forkd-action repository remains).&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Active and unreleased for five months: 3,270 stars, 293 forks, and 11 open issues and pull requests as of 2026-10-31 (GitHub API), pushed 2026-10-31, while the newest tag is still v0.5.3 from 2026-07-22.&lt;/p&gt;&#xA;&lt;picture&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/chart?repos=deeplethe/sandstorm&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/chart?repos=deeplethe/sandstorm&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;  &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/chart?repos=deeplethe/sandstorm&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;&lt;/picture&gt;&#xA;&lt;p&gt;Zero independent footprint: a Hacker News search returns no story about this project as of 2026-10-31, and the latency chart on the README is self-published and self-measured.&#xA;The name collides with Sandstorm.io, the long-archived self-hosted app platform, which still owns search results for the word.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The lifecycle is the feature&lt;/strong&gt;: published wake latencies per tier (about 0.1 s frozen, about 0.2 s from snapshot) aim the design at idle memory, the actual cost driver of sandbox fleets.&lt;/li&gt;&#xA;&lt;li&gt;Real isolation boundaries, not wrappers around them: gVisor and Firecracker are first-class backends with their own optimization passes, documented with before-and-after measurements in the repo&amp;rsquo;s OPTIMIZATIONS.md.&lt;/li&gt;&#xA;&lt;li&gt;Fleet plumbing in one binary: SQLite desired state, NAT-dialing nodes, wake-on-traffic gateway, and self-protecting nodes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No release since July 2026 while main pushes daily, so adopters run source builds or pin to a stale tag.&lt;/li&gt;&#xA;&lt;li&gt;Every performance number is self-measured, with no third-party benchmark or write-up found anywhere.&lt;/li&gt;&#xA;&lt;li&gt;Single-vendor project with a Chinese-language company presence and no English community channel surfaced, so roadmap visibility and support are thin.&lt;/li&gt;&#xA;&lt;li&gt;The Sandstorm name fight against Sandstorm.io for search and mindshare is a permanent tax.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Does not apply: the platform is open-source and self-hosted, and no hosted tier is on offer.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Microsandbox: a local-first embeddable microVM runtime for sandboxes on one machine; choose Sandstorm when the fleet spans machines and idle cost, not sandbox startup, is the problem.&lt;/li&gt;&#xA;&lt;li&gt;CubeSandbox: Tencent&amp;rsquo;s self-hosted, E2B-compatible microVM sandbox service; it is API-first where Sandstorm is lifecycle-first with a web console and placement.&lt;/li&gt;&#xA;&lt;li&gt;E2B: the hosted Firecracker API that defines the category baseline; choose it for zero ops, and Sandstorm to own the machines underneath.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Recommended for engineers running self-hosted agent-sandbox fleets on their own machines, who can accept an unreleased main and self-measured numbers. Not for teams wanting a hosted API, a tagged release, or an independently reviewed product.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-31 - Created.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/microsandbox/&#34; &gt;Microsandbox&lt;/a&gt; - the local-first microVM runtime this note&amp;rsquo;s lifecycle economics answer at fleet scale&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/cubesandbox/&#34; &gt;CubeSandbox&lt;/a&gt; - the self-hosted microVM sandbox service closest in shape&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/e2b/&#34; &gt;E2B&lt;/a&gt; - the hosted baseline every self-hosted entry here is measured against&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/overalls/&#34; &gt;Overalls&lt;/a&gt; - the other self-hosted Firecracker platform in the category&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/deeplethe/sandstorm&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/deeplethe/sandstorm&lt;/a&gt; - repository, feature set, backends, and lifecycle claims&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/deeplethe/sandstorm/HEAD/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/deeplethe/sandstorm/HEAD/README.md&lt;/a&gt; - tier table, latency chart, key features, and naming&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/deeplethe/sandstorm/HEAD/docs/OPTIMIZATIONS.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/deeplethe/sandstorm/HEAD/docs/OPTIMIZATIONS.md&lt;/a&gt; - the per-backend optimization evidence&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/deeplethe/sandstorm/releases&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/deeplethe/sandstorm/releases&lt;/a&gt; - the stalled release train (v0.5.3, 2026-07-22)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://deeplethe.com&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=deeplethe.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://deeplethe.com&lt;/a&gt; - the maker and its Chinese-language company presence&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hn.algolia.com/api/v1/search?query=deeplethe%20sandstorm&amp;amp;tags=story&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=hn.algolia.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://hn.algolia.com/api/v1/search?query=deeplethe%20sandstorm&amp;tags=story&lt;/a&gt; - the zero-story Hacker News footprint as of 2026-10-31&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
