Skip to content
forked from laher/mergefs

go package to chain fs.FS filesystems together (go1.16+)

License

Notifications You must be signed in to change notification settings

dsotirakis/mergefs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mergefs

A tiny go package which combines together fs.FS filesystems.

mergefs.FS looks through a slice of fs.FS filesytems in order to find a given file. It returns the first match, or os.ErrNotExist.

Go Reference

Related work

mergefs could be used to overlay multiple fs.FS filesystems on top of each other.

  • marshalfs for backing a fileystem with your objects.
  • Standard Library:
    • dirfs contains os.DirFS - this 'default' implementation is backed by an actual filesystem.
    • testfs contains a memory-map implementation and a testing tool. The standard library contains a few other fs.FS implementations (like 'zip')
    • embedfs provides access to files embedded in the running Go program.
  • An earlier work, afero is a filesystem abstraction for Go, which has been the standard for filesystem abstractions up until go1.15. It's read-write, and it's a mature project. The interfaces look very different (big with lots of methods), so it's not really compatible.
  • s3fs is a fs.FS backed by the AWS S3 client
  • hashfs appends SHA256 hashes to filenames to allow for aggressive HTTP caching.

About

go package to chain fs.FS filesystems together (go1.16+)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 79.9%
  • Makefile 20.1%