{"slug": "nikolaydubina--go-recipes", "title": "Go Recipes", "description": "🦩 Tools for Go projects", "github_url": "https://github.com/nikolaydubina/go-recipes", "stars": "4.4K", "tag": "Programming Languages", "entry_count": 5, "subcategory_count": 225, "subcategories": [{"name": "[⏫](#contents) Continuous Tests Monitoring with [codecov.io](https://app.codecov.io)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Make treemap of coverage with [go-cover-treemap (⭐589)](https://github.com/nikolaydubina/go-cover-treemap)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Browse coverage", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Browse coverage with [gocov-html (⭐231)](https://github.com/matm/gocov-html)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Browse coverage with [xgo (⭐428)](https://github.com/xhd2015/xgo)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Browse coverage in terminal with [gocovsh (⭐380)](https://github.com/orlangure/gocovsh)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Pretty print coverage in terminal with [nikandfor/cover (⭐8)](https://github.com/nikandfor/cover)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Run coverage collector server with [goc (⭐875)](https://github.com/qiniu/goc)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Visualize live coverage in VSCode with [goc (⭐875)](https://github.com/qiniu/goc)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Detect drops in coverage with [go-test-coverage (⭐200)](https://github.com/vladopajic/go-test-coverage)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) :gift: Comment code coverage reports in pull request with [go-coverage-report (⭐109)](https://github.com/fgrosse/go-coverage-report)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) :gift: Differential coverage", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) :gift: Manipulate coverage profiles with [gopherage (⭐4k)](https://github.com/kubernetes/test-infra/blob/master/gopherage)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Shuffle tests", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Run tests sequentially", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Run tests in parallel", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Run all Fuzz tests", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) :gift: Fuzz Go binaries using LibAFL with [GoLibAFL (⭐57)](https://github.com/srlabs/golibafl)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Detect goroutine leaks with [goleak (⭐5k)](https://github.com/uber-go/goleak)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Detect goroutine leaks with [leaktest (⭐1k)](https://github.com/fortytw2/leaktest)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Visualize test runs with [vgt (⭐347)](https://github.com/roblaszczak/vgt)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Summarize `go test` with [tparse (⭐1.2k)](https://github.com/mfridman/tparse)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Decorate `go test` with [richgo (⭐865)](https://github.com/kyoh86/richgo)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Decorate `go test` with [gotest (⭐1.4k)](https://github.com/rakyll/gotest)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Decorate `go test` with [gotestsum (⭐2.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Format `go test` results as documentation with [gotestdox (⭐175)](https://github.com/bitfield/gotestdox)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Get slowest tests with [gotestsum (⭐2.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Auto-Instrument skipping slowest tests with [gotestsum (⭐2.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Automatically re-run failed tests with [gotestsum (⭐2.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Make `JSUnit` test report with [gotestsum (⭐2.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Make `JSUnit` test report with [go-junit-report (⭐820)](https://github.com/jstemmer/go-junit-report)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Get packages without tests", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Perform Mutation Testing with [ooze (⭐279)](https://github.com/gtramontina/ooze)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Perform Mutation Testing with [avito-tech/go-mutesting (⭐199)](https://github.com/avito-tech/go-mutesting)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Perform Mutation Testing with [go-mutesting (⭐661)](https://github.com/zimmski/go-mutesting)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Trace tests with [go-test-trace (⭐391)](https://github.com/rakyll/go-test-trace)", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Speedup tests for large codebases", "parent": "Test", "entries": []}, {"name": "[⏫](#contents) Upgrade dependencies", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Get Go version of current module", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Get Go versions of upstream modules", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Get directly dependent modules that can be upgraded", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Get upstream modules without Go version", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Get available module versions", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Get go module libyear, number of releases, version delta with [go-libyear (⭐42)](https://github.com/nieomylnieja/go-libyear)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Make graph of upstream modules with [modgraphviz](https://golang.org/x/exp/cmd/modgraphviz)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Make graph of upstream packages with [import-graph (⭐43)](https://github.com/nikolaydubina/import-graph)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Scrape details about upstream modules and make graph with [import-graph (⭐43)](https://github.com/nikolaydubina/import-graph)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Scrape licenses of upstream dependencies with [go-licenses (⭐967)](https://github.com/google/go-licenses)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Explore dependencies with [goda (⭐1.6k)](https://github.com/loov/goda)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Explore dependencies interactively with [spaghetti (⭐767)](https://github.com/adonovan/spaghetti)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Explore dependencies graph interactively with [modview (⭐225)](https://github.com/bayraktugrul/modview)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Explore dependencies graph in CLI with [depth (⭐1.1k)](https://github.com/KyleBanks/depth)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Explore your `GOPATH` with GUI with [goggles (⭐666)](https://github.com/KyleBanks/goggles)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Enforce Go code architecture with [go-arch-lint (⭐426)](https://github.com/fe3dback/go-arch-lint)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Check Clean Architecture with [go-cleanarch (⭐958)](https://github.com/roblaszczak/go-cleanarch)", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Use `go mod` directives", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Locally patch dependency with `replace`", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Locally patch dependency with `go.work`", "parent": "Dependencies", "entries": []}, {"name": "[⏫](#contents) Make C4 diagram with [go-structurizr (⭐358)](https://github.com/krzysztofreczek/go-structurizr)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Make graph of function calls with [callgraph](https://golang.org/x/tools/cmd/callgraph)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Make graph of function calls in package with [go-callvis (⭐6.4k)](https://github.com/ofabry/go-callvis)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Make PlantUML diagram with [goplantuml (⭐2.1k)](https://github.com/jfeliu007/goplantuml)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Make PlantUML diagram with [go-plantuml (⭐411)](https://github.com/bykof/go-plantuml)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Visualize the entropy of a code base with a 3D force-directed graph with [dep-tree (⭐1.7k)](https://github.com/gabotechs/dep-tree)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Make 3D chart of Go codebase with [gocity (⭐1.8k)](https://github.com/rodrigo-brito/gocity)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Make histogram of Go files per package", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Explore Go code in browser powered by `go-guru` with [pythia (⭐340)](https://github.com/fzipp/pythia)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Interactively visualize packages with [goexplorer (⭐180)](https://github.com/ofabry/goexplorer)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Make D2 graph of architecture and dependencies with [go-arch-lint graph (⭐426)](https://github.com/fe3dback/go-arch-lint)", "parent": "Code Visualization", "entries": []}, {"name": "[⏫](#contents) Run `go:generate` in parallel", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate `String` method for enum types", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate enums encoding with [go-enum-encoding (⭐15)](https://github.com/nikolaydubina/go-enum-encoding)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate enums with [goenums (⭐371)](https://github.com/zarldev/goenums)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate data types from JSON Schema with [go-jsonschema (⭐763)](https://github.com/omissis/go-jsonschema)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate constructor for a struct with [gonstructor (⭐93)](https://github.com/moznion/gonstructor)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate Table Driven Tests with [gotests (⭐5.3k)](https://github.com/cweill/gotests)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate mocks with [mockgen (⭐3.2k)](https://github.com/uber-go/mock)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate interface for a struct with [ifacemaker (⭐348)](https://github.com/vburenin/ifacemaker)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate interface for a struct with [interfacer (⭐432)](https://github.com/rjeczalik/interfaces)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate interface for a struct with [struct2interface (⭐20)](https://github.com/reflog/struct2interface)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate interface for `CSV` file with [structer (⭐432)](https://github.com/rjeczalik/interfaces)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate decorator for interface with [gowrap (⭐1.3k)](https://github.com/hexdigest/gowrap)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Modify struct field tags with [gomodifytags (⭐2.4k)](https://github.com/fatih/gomodifytags)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate code from OpenAPI 3 specification with [oapi-codegen (⭐7.9k)](https://github.com/oapi-codegen/oapi-codegen)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Generate C-Go Bindings with [c-for-go (⭐1.6k)](https://github.com/xlab/c-for-go?tab=readme-ov-file)", "parent": "Code Generation", "entries": []}, {"name": "[⏫](#contents) Enum via generics with [enum (⭐449)](https://github.com/orsinium-labs/enum)", "parent": "Generics", "entries": []}, {"name": "[⏫](#contents) Replace symbol with `gofmt`", "parent": "Refactor", "entries": []}, {"name": "[⏫](#contents) Apply refactoring patches with [gopatch (⭐1k)](https://github.com/uber-go/gopatch)", "parent": "Refactor", "entries": []}, {"name": "[⏫](#contents) Keep consistent ordering of imports with [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports)", "parent": "Refactor", "entries": []}, {"name": "[⏫](#contents) Keep consistent ordering of imports with [gci (⭐535)](https://github.com/daixiang0/gci)", "parent": "Refactor", "entries": []}, {"name": "[⏫](#contents) Keep consistent ordering of imports with [goimportx (⭐10)](https://github.com/anqiansong/goimportx/tree/main)", "parent": "Refactor", "entries": []}, {"name": "[⏫](#contents) Errors with return traces with [errtrace (⭐785)](https://github.com/bracesdev/errtrace)", "parent": "Errors", "entries": []}, {"name": "[⏫](#contents) Errors with stack traces and source fragments with [tracerr (⭐1.1k)](https://github.com/ztrue/tracerr)", "parent": "Errors", "entries": []}, {"name": "[⏫](#contents) Pretty print `panic` messages with [panicparse (⭐3.7k)](https://github.com/maruel/panicparse)", "parent": "Errors", "entries": []}, {"name": "[⏫](#contents) :gift: Generate errors from a spec with [zederr (⭐5)](https://github.com/amanbolat/zederr)", "parent": "Errors", "entries": []}, {"name": "[⏫](#contents) Fetch private dependencies in CI", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Show compiler optimization decisions on heap and inlining", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Disable inlining", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Aggressive inlining", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) :gift: Reduce size of binary", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Profile-guided optimization", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Manually disable or enable `cgo`", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Include metadata in binary during compilation with `ldflags`", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Check if symbol or package is included in binary", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Build for Raspberry Pi, Virtual Machine, embedded or normal PC with [gokrazy (⭐3.4k)](https://github.com/gokrazy/gokrazy)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Visualise dependencies size in compiled binaries with [go-size-analyzer (⭐1.8k)](https://github.com/Zxilly/go-size-analyzer)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Make treemap breakdown of Go executable binary with [go-binsize-treemap (⭐588)](https://github.com/nikolaydubina/go-binsize-treemap)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Custom import path", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Custom import path with [govanityurls (⭐537)](https://github.com/GoogleCloudPlatform/govanityurls)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Custom import path with [sally (⭐336)](https://github.com/uber-go/sally)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Custom import path with [kkn.fi/vanity](https://kkn.fi/vanity)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Custom import path enforcement", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Manage multiple Go versions with [Goenv (⭐37)](https://github.com/Norwik/Goenv)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Transpile C to Go with [cxgo (⭐377)](https://github.com/gotranspile/cxgo)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Transpile Go to Javascript with [gopherjs (⭐13k)](https://github.com/gopherjs/gopherjs)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Run compile-time function evaluation with [prep (⭐484)](https://github.com/pijng/prep)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) :gift: Containerize your builds with [brewkit (⭐29)](https://github.com/ispringtech/brewkit)", "parent": "Build", "entries": []}, {"name": "[⏫](#contents) Get assembly of Go code snippets online", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) Get Go SSA intermediary representation with [ssaplayground (⭐81)](https://github.com/golang-design/ssaplayground)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) View Go assembly interactively with [lensm (⭐3.6k)](https://github.com/loov/lensm)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) View Go assembly with color annotation with [pat/disfunc (⭐11)](https://github.com/maruel/pat)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) Generate Go assembly in Go with [avo (⭐2.9k)](https://github.com/mmcloughlin/avo)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) Generate AST for code snippets with `go/ast`", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) Generate AST for code snippets with [go2ast (⭐122)](https://github.com/reflog/go2ast)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) Visualize Go SSA function using Graphviz with [go-ssaviz (⭐49)](https://github.com/SilverRainZ/go-ssaviz)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) Make graph of AST with [astgraph (⭐20)](https://github.com/xiazemin/ast_graph)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) Convert C assembly to Go assembly with [c2goasm (⭐1.3k)](https://github.com/minio/c2goasm)", "parent": "Assembly", "entries": []}, {"name": "[⏫](#contents) :gift: Automatically set memory and cpu limits in K8S", "parent": "Deployment", "entries": []}, {"name": "[⏫](#contents) Embed Go Playground to your blog with [codapi (⭐2k)](https://github.com/nalgeon/codapi)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Embed Go Playground to your blog with [goplay (⭐11)](https://github.com/ggicci/goplay)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Run alternative Go Playground with [goplay.tools (⭐1.4k)](https://github.com/x1unix/go-playground)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Use TinyGo Playground with [tinygo](https://play.tinygo.org)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Run interactive Go kernels in Jupyter Notebook with [gophernotes (⭐4k)](https://github.com/gopherdata/gophernotes)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Run interactive Go interpreter with [yaegi (⭐8k)](https://github.com/traefik/yaegi)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Run interactive Go interpreter with [gomacro (⭐2.3k)](https://github.com/cosmos72/gomacro)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Run Go function in shell with [gorram (⭐1.1k)](https://github.com/natefinch/gorram)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Run Go function in shell with [gosh (⭐41)](https://github.com/nickwells/utilities/blob/master/gosh/_gosh.DOC.md)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Run simple fileserver with `net/http`", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Create 3D visualization of concurrency traces with [gotrace (⭐2k)](https://github.com/divan/gotrace)", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Wrap command with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Capture output of command to file with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Capture output of command and process it with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Piping between processes with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) `errgroup` and CommandContext with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[⏫](#contents) Monitor Go Runtime metrics with [opentelemetry](https://pkg.go.dev/go.opentelemetry.io/contrib/instrumentation/runtime)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Monitor goroutines with [grmon (⭐1.9k)](https://github.com/bcicen/grmon)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Monitor Go processes with [gops (⭐7k)](https://github.com/google/gops)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Monitor Go runtime metrics in browser with [live-pprof (⭐314)](https://github.com/moderato-app/live-pprof)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Monitor Go runtime metrics in browser with [statsviz (⭐3.6k)](https://github.com/arl/statsviz)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Auto-Instrument all functions with [go-instrument (⭐287)](https://github.com/nikolaydubina/go-instrument)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Auto-Instrument all functions with [otelinji (⭐26)](https://github.com/hedhyw/otelinji)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Auto-Instrument functions for DataDog with [orchestrion (⭐492)](https://github.com/DataDog/orchestrion)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Continuous Profiling with [Pyroscope (⭐11k)](https://github.com/grafana/pyroscope)", "parent": "Monitor", "entries": []}, {"name": "[⏫](#contents) Run benchmarks", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Table-driven benchmarks", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Align benchmark output", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Generate benchmark CPU and Memory profiles with `go test`", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Visualize callgraph of profiles with `pprof`", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Visualize flamegraphs of profiles with `pprof`", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Visualize profiles online", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) :gift: Profile and visualizse (with video) Go profiles through eBPF with [go-profile (⭐28)](https://github.com/benbaker76/go-profile)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Get delta between two benchmarks with [benchstat](https://golang.org/x/perf/cmd/benchstat)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Get summary of benchmarks with [benchstat](https://golang.org/x/perf/cmd/benchstat)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Benchmark against git commit with [pat/ba (⭐11)](https://github.com/maruel/pat)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Continuous benchmarking", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Continuous benchmarking with [gobenchdata (⭐151)](https://github.com/bobheadxi/gobenchdata)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Continuous benchmarking with [benchdiff (⭐68)](https://github.com/willabides/benchdiff)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Continuous benchmarking with [cob (⭐391)](https://github.com/knqyf263/cob)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Generate live traces with `net/http/trace`", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Generate traces with `go test`", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) View traces with `go tool trace`", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) View traces with [gotraceui (⭐1.4k)](https://github.com/dominikh/gotraceui)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) View in-process traces with [trc (⭐102)](https://github.com/peterbourgon/trc)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) View wallclock traces with [fgtrace (⭐912)](https://github.com/felixge/fgtrace)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Get on/off CPU profiles with [fgprof (⭐3.1k)](https://github.com/felixge/fgprof)", "parent": "Benchmark", "entries": []}, {"name": "[⏫](#contents) Make alternative documentation with [golds (⭐647)](https://github.com/go101/golds)", "parent": "Document", "entries": []}, {"name": "[⏫](#contents) Read Go binary documentation in `man` format with [goman (⭐126)](https://github.com/appliedgocode/goman)", "parent": "Document", "entries": []}, {"name": "[⏫](#contents) Generate badge with [gobadge (⭐24)](https://github.com/AlexBeauchemin/gobadge)", "parent": "Document", "entries": []}, {"name": "[⏫](#contents) Generate README.md based on GoDoc comments with [goreadme (⭐221)](https://github.com/posener/goreadme)", "parent": "Document", "entries": []}, {"name": "[⏫](#contents) :gift: display contents of a module with [go-mod-viewer](https://go-mod-viewer.appspot.com/https://go-mod-viewer.appspot.com/)", "parent": "Document", "entries": []}, {"name": "[⏫](#contents) Run Turtle Graphics online with [goplay.space](https://goplay.space/#wT_eZWJT69)", "parent": "Education", "entries": [{"name": "Google", "url": "https://google.github.io/styleguide/go", "description": ""}, {"name": "Uber", "url": "https://github.com/uber-go/guide", "description": "", "stars": "17k"}, {"name": "Go Code Review Comments", "url": "https://go.dev/wiki/CodeReviewComments", "description": ""}]}, {"name": "[⏫](#contents) Run official vulnerability check with [govulncheck](https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck)", "parent": "Security", "entries": []}, {"name": "[⏫](#contents) Detect escalated privileges in dependencies with [capslock (⭐1.1k)](https://github.com/google/capslock)", "parent": "Security", "entries": []}, {"name": "[⏫](#contents) Run static analysis with [gosec (⭐8.6k)](https://github.com/securego/gosec)", "parent": "Security", "entries": []}, {"name": "[⏫](#contents) Perform Taint Analysis with [taint (⭐80)](https://github.com/picatz/taint)", "parent": "Security", "entries": []}, {"name": "[⏫](#contents) Use Microsoft Go compiler with [microsoft/go (⭐404)](https://github.com/microsoft/go)", "parent": "Security", "entries": []}, {"name": "[⏫](#contents) Run default static analysis with `go vet`", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Run custom static analysis tool with `go vet`", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Run official static analyzers not included in `go vet`", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect most common issues with [staticcheck (⭐6.7k)](https://github.com/dominikh/go-tools)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect potential Nil panics with [nilaway (⭐3.7k)](https://github.com/uber-go/nilaway)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect most common issues with [go-critic (⭐2k)](https://github.com/go-critic/go-critic)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Reference and run common linters with [golangci-lint](https://golangci-lint.run)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect non-exhaustive switch and map with [exhaustive (⭐329)](https://github.com/nishanths/exhaustive)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect structs with uninitialized fields with [go-exhaustruct (⭐182)](https://github.com/GaijinEntertainment/go-exhaustruct)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) :gift: Detect missing cascade calls with [go-lint-cascade (⭐2)](https://github.com/nikolaydubina/go-lint-cascade)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect unreachable functions with [deadcode](https://pkg.go.dev/golang.org/x/tools/cmd/deadcode)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect unsafe code with [go-safer (⭐43)](https://github.com/jlauinger/go-safer)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect `panic` without explaining comment with [panic-linter (⭐0)](https://github.com/ldemailly/panic-linter)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect unnecessary type conversions with [unconvert (⭐385)](https://github.com/mdempsky/unconvert)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect global variables with [gochecknoglobals (⭐123)](https://github.com/leighmcculloch/gochecknoglobals)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect slices that could be preallocated with [prealloc (⭐659)](https://github.com/alexkohler/prealloc)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect unnecessary import aliases with [unimport (⭐70)](https://github.com/alexkohler/unimport)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect unexpected import aliases with [importas (⭐16)](https://github.com/julz/importas)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect inconsistent import aliases with [consistentimports (⭐2)](https://github.com/nikolaydubina/consistentimports)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect naked returns with [nakedret (⭐131)](https://github.com/alexkohler/nakedret)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect mixing pointer and value method receivers with [smrcptr (⭐13)](https://github.com/nikolaydubina/smrcptr)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect vertical function ordering with [vertfn (⭐19)](https://github.com/nikolaydubina/vertfn)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect vertical symbol ordering with [refdir (⭐6)](https://github.com/devnev/refdir)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect tests with wrong `t.Parallel()` usage with [paralleltest (⭐59)](https://github.com/kunwardeep/paralleltest)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect tests with wrong `t.Parallel()` usage with [tparallel (⭐26)](https://github.com/moricho/tparallel)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect magic numbers with [mnd (⭐203)](https://github.com/tommy-muehle/go-mnd)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect magic strings with [goconst (⭐313)](https://github.com/jgautheron/goconst)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect bound checks with [pat/boundcheck (⭐11)](https://github.com/maruel/pat)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) :gift: Detect performance optimizations with [perfsprint (⭐43)](https://github.com/catenacyber/perfsprint)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Calculate Cognitive Complexity with [gocognit (⭐432)](https://github.com/uudashr/gocognit)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Calculate Cyclomatic Complexity with [gocyclo (⭐1.5k)](https://github.com/fzipp/gocyclo)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Calculate Cyclomatic Complexity with [cyclop (⭐54)](https://github.com/bkielbasa/cyclop)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Calculate age of comments with [go-commentage (⭐4)](https://github.com/nikolaydubina/go-commentage)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Ensure `if` statements using short assignment with [ifshort (⭐18)](https://github.com/esimonov/ifshort)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect sub-optimal struct layout with [betteralign (⭐918)](https://github.com/dkorunic/betteralign)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Detect sub-optimal struct layout with [structlayout-optimize (⭐6.7k)](https://github.com/dominikh/go-tools/blob/master/cmd/structlayout-optimize)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Visualize struct layout with [structlayout (⭐6.7k)](https://github.com/dominikh/go-tools/tree/master/cmd/structlayout)", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Rely on compiler for stricter Enums", "parent": "Static Analysis", "entries": []}, {"name": "[⏫](#contents) Analyze function callsites with [go-callsite-stats (⭐2)](https://github.com/nikolaydubina/go-callsite-stats)", "parent": "Static Analysis", "entries": [{"name": "Go Optimization Guide", "url": "https://goperf.dev/", "description": ""}, {"name": "Go 101", "url": "https://go101.org/", "description": ""}]}]}