spf13/afero

The Universal Filesystem Abstraction for Go

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 51 minutes ago
Added to GitGenius on September 9th, 2026
Created on October 28th, 2014
Open Issues & Pull Requests: 135 (+0)
GitHub issues: Enabled
Number of forks: 576
Total Stargazers: 6,697 (+0)
Total Subscribers: 86 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 422.6 days
Mean response time: 746.3 days
90th percentile: 2086.7 days
Tracked items: 36

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 8% of issues opened in the past year have been closed. Three people close 85% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 30
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,036 days
Stale 30+ days: 30
Stale 90+ days: 26

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (7)
  • enhancement (2)
  • question (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Afero is a filesystem abstraction library for Go that provides a drop-in replacement for the standard os package.

Afero solves the problem of tightly coupling application code to specific storage backends. It works by defining a single Fs interface that abstracts filesystem operations, allowing developers to swap between local disk, in-memory storage, cloud services, and archive formats without changing application logic. The library mirrors the standard os package API, minimizing the effort required to adopt it in existing codebases.

Afero suits projects that need flexible storage backends or comprehensive filesystem testing. It is particularly valuable for applications requiring fast, isolated unit tests through its MemMapFs in-memory filesystem, which eliminates disk I/O and cleanup overhead. The tool also enables sophisticated architectural patterns through filesystem composition: CopyOnWriteFs for sandboxing, CacheOnReadFs for layering caches over slow backends, and BasePathFs for restricting access to subdirectories. Teams building systems that must support multiple storage targets—local filesystems, SFTP, GCS, ZIP archives, or TAR files—will find the universal API especially useful. The library maintains full compatibility with both the os package and Go's io/fs interfaces, making it accessible to developers already familiar with standard library patterns.

The project maintains steady activity with regular updates addressing bug fixes and feature enhancements. Pull requests receive timely review and integration, indicating active maintenance. The codebase shows consistent refinement of core functionality and documentation improvements over time.