Home

Awesome

Golds is a Go local docs server, a Go docs generator, and a Go code reader. It tries to extract as much information as possible from Go code to help gophers understand, study and use Go packages.

Installation & Usages

The module path of this project is go101.org/golds and the default Go program name is golds. For more information about installation and usages, please visit this page on Go101.org.

Main Features

(NOTE: This tool is still in its early experimental phase. More new features will be added from time to time in future versions.)

Limitations

Go Toolchain 1.13+ is needed to build and run Golds.

This project uses the golang.org/x/tools/go/packages package to parse code. The golang.org/x/tools/go/package package is great, but it also has a shortcoming: there are no ways to get module/package downloading/preparing progress.

All packages must compile okay to get their docs shown.

Only a code snapshot is analyzed. When code changes, a new analyzation is needed from scratch.

Testing packages are excluded currently.

Analyzation Cases

The following results are got on a machine with an AMD-2200G CPU (4 cores 4 threads) and sufficient memory. Go Toolchain 1.14.3 is used in the analyzations.

Before running the golds ./... command, the go build ./... command is run to ensure that all involved modules/packages are fetched to local machine and verify cgo tools (if needed) have been installed.

ProjectPackage CountAnalyzation TimeFinal Used MemoryNotes
imgui-go v2.5.0351.2s125M
gotk3 rev:030ba00403s305M
go-sdl2 v0.4.4471.3s200M(need run go mod init github.com/veandco/go-sdl2 before running Golds)
bolt v1.3.1511.6s140M
nucular rev:b1fe9b2972s250M
tview rev:823f2801022s200M(run golds . instead of golds ./...)
gorilla/websocket v1.4.21181.8s337M
gio rev:33146961193.1s1G
nats-server v2.1.71362.3s400M(need run go mod vendor before running Golds)
badger v2.0.31452.2s350M
Golds v0.0.11512.5s400M(run golds . instead of golds ./...)
pion/webrtc v2.2.91892.1s400M
goleveldb v1.0.01932.7s600M
standard packages v1.141992.6s400M
Pebble rev:284ba062002.2s500M
ebiten v1.11.12142.1s472M
dominikh/go-tools rev:919f4c92354.5s465M
tailscale v0.98.02752.5s539M
etcd v3.4.73913.5s700M(need run go mod vendor before running Golds)
go-ethereum v1.9.144595.5s1.3G
minio RELEASE.2020-05-16T01-33-21Z6395.1s1.2G
terraform v0.12.257775.7s1.5G
consul v1.7.38037.2s1.9G
vitess v6.0.20-202005259057.1s1.7G
nomad v0.12.48977.5s2.1G
Traefik v2.3.011998.9s2G(need generate bindata before running Golds)
istio 1.6.0186010.7s2.8G
openshift/origin rev:5022f83264016.1s4G
kubernetes v1.18.2282116.3s4G