Skip to content

ancientlore/cachefs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cachefs

Go Reference

Package cachefs implements a read-only cache around a fs.FS, using groupcache.

Using cachefs is straightforward:

// Setup groupcache (in this example with no peers)
groupcache.RegisterPeerPicker(func() groupcache.PeerPicker { return groupcache.NoPeers{} })

// Create the cached file system with group name "groupName", a 10MB cache, and a ten second expiration
cachedFileSystem := cachefs.New(os.DirFS("."), &cachefs.Config{GroupName: "groupName", SizeInBytes: 10*1024*1024, Duration: 10*time.Second})

// Use the file system as usual...

cachefs "wraps" the underlying file system with caching. You can specify groupcache parameters - the group name and the cache size.

groupcache does not support expiration, but cachefs supports quantizing values so that expiration happens around the expiration duration provided. Expiration can be disabled by specifying 0 for the duration.

See https://pkg.go.dev/github.com/golang/groupcache for more information on groupcache.

About

Package cachefs implements a read-only cache around a fs.FS, using groupcache.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages