<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Go-Billy on Pi Stack</title>
    <link>https://www.pistack.xyz/tags/go-billy/</link>
    <description>Recent content in Go-Billy on Pi Stack</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 30 Aug 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.pistack.xyz/tags/go-billy/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Go Filesystem Abstractions in 2026: afero vs go-billy vs the Standard Library</title>
      <link>https://www.pistack.xyz/posts/2026-08-30-go-filesystem-abstractions-afero-go-billy-stdlib-comparison/</link>
      <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://www.pistack.xyz/posts/2026-08-30-go-filesystem-abstractions-afero-go-billy-stdlib-comparison/</guid>
      <description>&lt;p&gt;Every Go project that touches disk eventually hits the same testing wall: your &lt;code&gt;os.ReadFile&lt;/code&gt; calls are great in production and impossible to test without touching the real filesystem. You either refactor every function to accept an interface, or you live with tests that create temp directories, pollute CI runners, and occasionally break because a file actually exists when it shouldn&amp;rsquo;t. In 2026 the Go ecosystem has two mature filesystem abstraction libraries — spf13/afero and go-git/go-billy — plus the standard library&amp;rsquo;s own &lt;code&gt;io/fs&lt;/code&gt; interfaces that quietly got better than most developers realize. This guide compares all three with real code and current GitHub data.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
