<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tar on ʕ•ᴥ•ʔ Notes from Jeroen</title><link>https://jeroen.github.io/notes/tar/</link><description>Recent content in Tar on ʕ•ᴥ•ʔ Notes from Jeroen</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 24 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jeroen.github.io/notes/tar/index.xml" rel="self" type="application/rss+xml"/><item><title>Mounting tar archives as a filesystem in WebAssembly</title><link>https://jeroen.github.io/notes/webassembly-tar/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://jeroen.github.io/notes/webassembly-tar/</guid><description>&lt;p>&lt;strong>TLDR&lt;/strong>: instead of extracting a &lt;code>.tar.gz&lt;/code> archive, we can generate a small index file which lists the size and offset of each file in the tar, and use this metadata to mount the tar blob directly via Emscripten&amp;rsquo;s WORKERFS without any copying.&lt;/p>
&lt;p>For details see: &lt;a href="https://github.com/jeroen/tar-vfs-index">https://github.com/jeroen/tar-vfs-index&lt;/a>&lt;/p>
&lt;hr>
&lt;h2 id="the-struggle-with-tarballs">The struggle with tarballs&lt;/h2>
&lt;p>Lots of data on the internet lives in tarballs, often distributed as gzipped &lt;code>.tar.gz&lt;/code> files. To get to this data, we have to download the entire &lt;code>.tar.gz&lt;/code> file, decompress it, and then iterate through the blob from beginning to end to make copies of the files we need. This is expensive and painful in memory constrained environments.&lt;/p></description></item></channel></rss>