mergefs

package module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 24, 2021 License: MIT Imports: 4 Imported by: 2

README

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

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.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Merge

func Merge(filesystems ...fs.FS) fs.FS

Merge filesystems

Types

type MergedFS

type MergedFS struct {
	// contains filtered or unexported fields
}

MergedFS combines filesystems. Each filesystem can serve different paths. The first FS takes precedence

func (MergedFS) Open

func (mfs MergedFS) Open(name string) (fs.File, error)

Open opens the named file.

func (MergedFS) ReadDir added in v0.1.1

func (mfs MergedFS) ReadDir(name string) ([]fs.DirEntry, error)

ReadDir reads from the directory, and produces a DirEntry array of different directories.

It iterates through all different filesystems that exist in the mfs MergeFS filesystem slice and it identifies overlapping directories that exist in different filesystems

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL