Help us shape the future of Go! Take the 2026 Go Developer Survey

overlayfs

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package overlayfs implements an overlay FileSystem where writes land in an in-memory overlay and reads come from the overlay-or-real-disk union.

Semantics:

  • Reads: serve from the overlay if present; otherwise from the host subtree under Root.
  • Writes: always go into the overlay; the host disk is never modified.
  • Deletes: store a tombstone in the overlay; later reads see ENOENT.
  • Listing: union of host readdir + overlay entries, minus tombstones.
  • Symlinks: rejected by default for security; opt in via AllowSymlinks.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FS

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

FS is the overlay FileSystem.

func New

func New(opts Options) (*FS, error)

New constructs an FS.

func (*FS) AllPaths

func (f *FS) AllPaths() []string

AllPaths returns the overlay's contents — host paths require a disk walk we do not perform here. Globbing tests should populate the overlay or use memfs directly.

func (*FS) AppendFile

func (f *FS) AppendFile(name string, data []byte, perm os.FileMode) error

func (*FS) Chmod

func (f *FS) Chmod(name string, mode os.FileMode) error

func (*FS) Chtimes

func (f *FS) Chtimes(name string, atime, mtime time.Time) error

func (*FS) Create

func (f *FS) Create(name string) (gobashfs.File, error)
func (f *FS) Link(oldpath, newpath string) error

func (*FS) Lstat

func (f *FS) Lstat(name string) (os.FileInfo, error)

func (*FS) Mkdir

func (f *FS) Mkdir(name string, perm os.FileMode) error

func (*FS) MkdirAll

func (f *FS) MkdirAll(name string, perm os.FileMode) error

func (*FS) MountPoint

func (f *FS) MountPoint() string

MountPoint returns "/" for the overlay; multi-mount support comes later via mountfs.

func (*FS) Open

func (f *FS) Open(name string) (iofs.File, error)

func (*FS) OpenFile

func (f *FS) OpenFile(name string, flag int, perm os.FileMode) (gobashfs.File, error)

func (*FS) ReadDir

func (f *FS) ReadDir(name string) ([]iofs.DirEntry, error)

func (*FS) ReadFile

func (f *FS) ReadFile(name string) ([]byte, error)
func (f *FS) Readlink(name string) (string, error)

func (*FS) Realpath

func (f *FS) Realpath(name string) (string, error)

func (*FS) Remove

func (f *FS) Remove(name string) error

func (*FS) RemoveAll

func (f *FS) RemoveAll(name string) error

func (*FS) Rename

func (f *FS) Rename(oldpath, newpath string) error

func (*FS) Stat

func (f *FS) Stat(name string) (os.FileInfo, error)
func (f *FS) Symlink(target, linkpath string) error

func (*FS) WriteFile

func (f *FS) WriteFile(name string, data []byte, perm os.FileMode) error

type Options

type Options struct {
	Root          string // required, must be absolute
	AllowSymlinks bool   // default false
	ReadOnly      bool   // if true, mutating ops return EROFS
}

Options configures an FS instance.

Jump to

Keyboard shortcuts

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