<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm" -->

---
title: Exports, checkpoints or branches: what should you reuse?...
description: SmolBox 0.3.0 introduces three ways to reuse VM state: exports (disk-only, from a stopped machine), checkpoints (disk and RAM, restored independently), and...
canonical: https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Exports, checkpoints or branches: what should you reuse? · SmolBox | daily.dev
og:description: SmolBox 0.3.0 introduces three ways to reuse VM state: exports (disk-only, from a stopped machine), checkpoints (disk and RAM, restored independently), and...
og:url: https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm
og:image: https://api.daily.dev/og/posts/ILUpeVugm.png
og:image:alt: Exports, checkpoints or branches: what should you reuse? · SmolBox
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Exports, checkpoints or branches: what should you reuse? · SmolBox

**[ElixirStatus](https://daily.dev/sources/elixirstatus)** · 10 min read · 0 upvotes · 0 comments

## Summary

SmolBox 0.3.0 introduces three ways to reuse VM state: exports (disk-only, from a stopped machine), checkpoints (disk and RAM, restored independently), and branches (live copy of disk and RAM from a running source, with its own dependency lifecycle). Benchmarks on a physical Linux host using smolvm 1.19.0 show exports cut median time from 4.65s to 1.19s by avoiding data preparation, while checkpoint restore and branching are faster still (0.90s and 0.85s, with overlapping ranges) but only after accounting for their own preparation costs: 8.6s for export publication, 0.49s for checkpoint capture, and 4.4s median for branch parent setup. Cleanup obligations differ per approach, with artifacts, backing, and dependencies persisting independently of machine deletion. A runnable community workspace example demonstrates the checkpoint/branch flow on real infrastructure.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://hfiguera.github.io/smolbox/blog/exports-checkpoints-or-branches>

## Questions this post answers

### What is the difference between a checkpoint and a branch in SmolBox 0.3.0?

A checkpoint saves disk and RAM to a file and requires an explicit restore to create an independent machine later, while a branch creates a new child directly from a running, idle source on the same worker, copying its disk and RAM live without an intermediate save step. Branches keep a dependency relationship with their source until child cleanup, whereas checkpoints are independent once captured.

_Teams weighing VM reuse strategies can follow architecture tradeoff writeups like this one on daily.dev._

### Does exporting a container in smolvm 1.19.0 include the /workspace directory?

No, a container export through the smolvm 1.19.0 HTTP API excludes /workspace, host mounts, and temporary filesystems. Container root filesystem changes are preserved, and bare VM exports preserve storage and overlay disks used by the pack exporter, but files living outside those preserved paths will not appear in the exported artifact.

_Developers debugging missing files after a VM export can track platform-specific caveats like this via daily.dev._

### How much faster is reusing a saved VM state compared to starting a fresh machine and rebuilding a dataset?

In one measured workload, reducing repeated data preparation produced the largest gain: using a disk export reduced median time through a RAM query from 4.65 seconds to 1.19 seconds, while checkpoint restore and branching measured 0.90 and 0.85 seconds respectively, with overlapping ranges. An existing machine running another command was fastest at 0.45 seconds, but it keeps accumulated state rather than providing a clean environment.

_Engineers benchmarking VM reuse strategies for their own workloads can follow measured comparisons like this on daily.dev._

## Similar posts on daily.dev

- [Prepare once, run in a fresh VM with SmolBox · SmolBox](https://daily.dev/posts/prepare-once-run-in-a-fresh-vm-with-smolbox-smolbox-ndd0chkle) · ElixirStatus · 1 upvotes · 0 comments
- [GitHub - smol-machines/smolvm: Tool to build & run portable, lightweight, self-contained virtual machines.](https://daily.dev/posts/github---smol-machines-smolvm-tool-to-build-run-portable-lightweight-self-contained-virtual-mac-ypwlwu4wm) · Hacker News · 2 upvotes · 0 comments
- [Introducing SmolBox: managing SmolVM executions from Elixir · SmolBox](https://daily.dev/posts/introducing-smolbox-managing-smolvm-executions-from-elixir-smolbox-4raab7slo) · ElixirStatus · 5 upvotes · 0 comments
- [How to achieve truly serverless GPUs](https://daily.dev/posts/how-to-achieve-truly-serverless-gpus-nggxyzsto) · Modal · 25 upvotes · 1 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#elixir](https://daily.dev/tags/elixir), [#virtual-machine](https://daily.dev/tags/virtual-machine)

[View this post on daily.dev](https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Exports, checkpoints or branches: what should you reuse? · SmolBox","url":"https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm"},"datePublished":"2026-10-03T14:25:40.179Z","dateModified":"2026-10-03T14:26:04.425Z","description":"SmolBox 0.3.0 introduces three ways to reuse VM state: exports (disk-only, from a stopped machine), checkpoints (disk and RAM, restored independently), and...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3fff9e3d86ccdf945166fe33f39532e3?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/3fff9e3d86ccdf945166fe33f39532e3?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"ElixirStatus","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ElixirStatus","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/22e4640538124187827caf8cc8e39190","url":"https://daily.dev/sources/elixirstatus"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,elixir,virtual-machine","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ElixirStatus","item":"https://daily.dev/sources/elixirstatus"},{"@type":"ListItem","position":3,"name":"Exports, checkpoints or branches: what should you reuse? · SmolBox"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/exports-checkpoints-or-branches-what-should-you-reuse-smolbox-ilupevugm#faq","mainEntity":[{"@type":"Question","name":"What is the difference between a checkpoint and a branch in SmolBox 0.3.0?","acceptedAnswer":{"@type":"Answer","text":"A checkpoint saves disk and RAM to a file and requires an explicit restore to create an independent machine later, while a branch creates a new child directly from a running, idle source on the same worker, copying its disk and RAM live without an intermediate save step. Branches keep a dependency relationship with their source until child cleanup, whereas checkpoints are independent once captured. Teams weighing VM reuse strategies can follow architecture tradeoff writeups like this one on daily.dev."}},{"@type":"Question","name":"Does exporting a container in smolvm 1.19.0 include the /workspace directory?","acceptedAnswer":{"@type":"Answer","text":"No, a container export through the smolvm 1.19.0 HTTP API excludes /workspace, host mounts, and temporary filesystems. Container root filesystem changes are preserved, and bare VM exports preserve storage and overlay disks used by the pack exporter, but files living outside those preserved paths will not appear in the exported artifact. Developers debugging missing files after a VM export can track platform-specific caveats like this via daily.dev."}},{"@type":"Question","name":"How much faster is reusing a saved VM state compared to starting a fresh machine and rebuilding a dataset?","acceptedAnswer":{"@type":"Answer","text":"In one measured workload, reducing repeated data preparation produced the largest gain: using a disk export reduced median time through a RAM query from 4.65 seconds to 1.19 seconds, while checkpoint restore and branching measured 0.90 and 0.85 seconds respectively, with overlapping ranges. An existing machine running another command was fastest at 0.45 seconds, but it keeps accumulated state rather than providing a clean environment. Engineers benchmarking VM reuse strategies for their own workloads can follow measured comparisons like this on daily.dev."}}]}
```

