DEV Community

Discussion on: Building and distributing a command line tool in Golang

Collapse
 
miniscruff profile image
miniscruff

Goreleaser and the Go ecosystem is so great at building CLI tools, coming from python and javascript it is just so easy. You can also easily upload to homebrew and windows package managers like scoop. It is also quite easy to automate the entire release process it would be hard for me to recommend any other tool for this job. Another huge benefit is just how small the packages are, my side project Changie ( github.com/miniscruff/changie ) that has quite a few features is barely 2.5MB.

Collapse
 
mauriciolinhares profile image
Maurício Linhares

Yeah, whenever I want to build anything CLI related I don't even think about using something else.

Collapse
 
supportic profile image
Supportic • Edited

Go is the place where I learned to value types and cross compiled binaries. It's fast and lean. It's my first go to candidate for WASM. It's a pitty that the docker image is over 1GB. ¯_(ツ)_/¯

Collapse
 
miniscruff profile image
miniscruff

What do you mean by docker image being 1GB? Like when you build a go project in docker the final image is 1GB? Cause mine is only 3MB when built.

Thread Thread
 
supportic profile image
Supportic

The image. For reference the node image is ~350MB. Everytime when you have to compile GO in your stack you will need the environment to get your executable.

Thread Thread
 
miniscruff profile image
miniscruff

Oh yea, use a multi stage docker build, you can build your app in one and then using a base scratch image you can store it in a much smaller image. docs.docker.com/develop/develop-im... has a guide for it.