Skip to content
GoBeaver logo

GoBeaver

Composable Go building blocks for secure, scalable services.

GoBeaver is a family of small, composable Go packages for building secure, scalable services. Pull in only the pieces you need — or use the full kit and the GoBeaver CLI to scaffold a complete modular monolith.

configkit

Zero-dependency env loader. Vendored, audited, 12-factor by default. Stable-ish — ready for real use.

filekit

Filesystem abstraction across 7 backends, with stackable decorators (cache, encrypt, validate). Stable-ish.

beaverkit

The wider toolkit: database, krypto, oauth, cache, slack, captcha, urlsigner. Alpha — APIs may shift.

GoBeaver CLI

Scaffold and manage GoBeaver projects from the terminal. Alpha.

Terminal window
go get github.com/gobeaver/configkit github.com/gobeaver/filekit

Load config from the environment, then write a file through the filesystem abstraction:

type Config struct {
DataDir string `env:"DATA_DIR" envDefault:"./data"`
}
func main() {
var cfg Config
configkit.MustLoad(&cfg)
fs := localfs.New(cfg.DataDir)
if _, err := fs.Write(context.Background(), "hello.txt", []byte("hi")); err != nil {
log.Fatal(err)
}
}

Swap localfs for S3, GCS, or any other driver without touching the rest. Full quickstart →

GoBeaver is supported by:

Thanks to everyone who has contributed to GoBeaver: