📚 rebed - Awesome Go Library for Resource Embedding

Go Gopher mascot for rebed

Recreate folder structures and files from Go 1.16's `embed.FS` type

🏷️ Resource Embedding
📂 Unofficial libraries for package and dependency management.
29 stars
View on GitHub 🔗

Detailed Description of rebed

rebed

codecov Build Status Go Report Card go.dev reference Awesome Sourcegraph

Recreate embedded filesystems from embed.FS type in current working directory.

Expose the files you've embedded in your binary so users can see and/or tinker with them. See where is this useful for an application example.

Install with (requires Go 1.16+)

go get -u github.com/soypat/rebed

Five actions available:


//go:embed someFS/*
var bdFS embed.FS

// Just replicate folder Structure
rebed.Tree(bdFS, "")

// Make empty files
rebed.Touch(bdFS, "")

// Recreate entire FS
rebed.Write(bdFS, "")

// Recreate FS without modifying existing files
rebed.Patch(bdFS, "")

// Runs Patch if no conflicting file is found, else error.
err := rebed.Create(bdFS, "")

/* Walk allows you operate on each file as you wish */

Where is this useful?

You could theoretically embed your web development assets folder and deploy it. The binary could run from the working directory folder generated by rebed and users could modify the assets and change the website's look (to do this run rebed.Patch to not overwrite modified files). If asset files are lost or the site breaks, running rebed.Write replaces all files with original ones.

Contributing

I'll look at issues and pull requests. Add a clear explanation when doing so!