mule alternatives and similar packages
Based on the "Resource Embedding" category.
Alternatively, view mule alternatives based on common mentions on social networks and blogs.
-
go.rice
go.rice is a Go package that makes working with resources such as html,js,css,images,templates, etc very easy. -
vfsgen
Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it. -
fileb0x
a better customizable tool to embed files in go; also update embedded files remotely without restarting the server -
go-bindata
A small utility which generates Go code from any file. Useful for embedding binary data in a Go program. -
statics
:file_folder: Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of mule or a related project?
Popular Comparisons
README
mule
A tool to be used with 'go generate' to embed external resources into Go code to create single file exceutables without any dependencies.
Scenario
An often used scenario in developing go applications is to embed external resources to be able to create only one binary without any dependencies. There are a number of existing packages solving this problem, like bindata, packr or packger and if you are looking for fancy features and unicorns you should probably better go there. Usually they are creating a kind of virtual file system. Usually this is really a lot more than I need for my simple usecase of including one or two files into a small cli program.
This package 'mule' (the kinda donkey carrying huge loads) takes a much simpler approach. It just generates a single .go file for each resource you want to embed, including the encoded resource wrapped in a function to access it.
It is intended to be run by go generate, though that is not required.
Installation
go get github.com/wlbr/mule
Usage
Simply add a line
//go:generate mule mybinary.file
to one of your source file for each resource you want to embed. Every time you run a 'go generate' in the corresponding folder, the file 'mybinary.go' will be created. It contains a function 'mybinaryResource' returning the resource as a []byte.
See mulex.go for a very, very simple example.
You may use 'mule mybinary.file' directly on the command line.
Switches
Usage of mule: mule [switches] resourcefilename
-e
export the generated, the resource returning function. Default (false) means
the function will not be exported.
-f no formatting of the generated source. Default false means source will be formatted with gofmt.
-n string name of generated, the resource returning function. Its name will have 'Resource' attached. Will be set to $(basename -s .ext outputfile) if empty (default). Take care of "-" within the name, especially when the name is calculated from the resources file name. A '-' would create an invalid go function name
-o string name of output file. Defaults to name of resource file excluding extension + '.go'.
-p string name of package to be used in generated code (default "main").
-t string name of alternate code generation template file. If empty (default), then the embedded template will be used. Template variables supplied are: .Name, .Package, .Content
Code
- Documentation: https://godoc.org/github.com/wlbr/mule
- Lint: http://go-lint.appspot.com/github.com/wlbr/mule
- Continous Integration:
- Test Coverage:
- Metrics: