mitchellh/go-fs — explained in plain English
Analysis updated 2026-07-03 · repo last pushed 2018-05-08
Learn how FAT filesystems work by reading and exploring disk images in Go.
Browse folders and files inside a FAT disk image from a Go application.
Create and write files into a FAT filesystem image for a hobby project.
| mitchellh/go-fs | awuqing/backupx | cybertec-postgresql/pg_hardstorage | |
|---|---|---|---|
| Stars | 92 | 96 | 88 |
| Language | Go | Go | Go |
| Last pushed | 2018-05-08 | — | — |
| Maintenance | Dormant | — | — |
| Setup difficulty | easy | easy | moderate |
| Complexity | 2/5 | 3/5 | 4/5 |
| Audience | developer | ops devops | ops devops |
Figures from each repo's GitHub metadata at analysis time.
No external infrastructure needed, just import the Go library and provide a file to use as a disk image.
go-fs is a Go library that lets programs read and write FAT filesystems. FAT is the old file storage system that floppy disks and early hard drives used, and it still shows up in things like USB sticks and camera memory cards. This library lets a Go application treat a regular file as if it were one of those disks, opening it, browsing its folders, and creating files inside it. At a high level, you give the library a file on your computer, and it wraps that file so your code can interact with it like a little disk drive. You can read existing files and directories, create new ones, and write content to them. The library handles the bookkeeping of the FAT format internally, so your code just deals with files and folders in a familiar way. The author is upfront that this is more of a learning project than production-ready software. Reading works well, but writing has serious gaps. You can't delete or rename files, deleted space is never reclaimed so the "disk" just fills up over time, and there are corruption risks if errors occur mid-operation. FAT12 and FAT16 are fully implemented, but FAT32 support is incomplete. Someone might use this for educational purposes, like understanding how filesystems work under the hood, or for a hobby project that needs to poke around disk images. The README doesn't suggest practical real-world scenarios, and the author explicitly recommends against relying on it for anything important. It's essentially a working experiment that demonstrates how to build filesystem tooling from scratch in Go.
A Go library that lets programs read and write FAT filesystems by treating a regular file like a disk drive, mainly built as a learning project rather than for production use.
Mainly Go. The stack also includes Go, FAT12, FAT16.
Dormant — no commits in 2+ years (last push 2018-05-08).
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.