jaeswift-website/api/data/awesomelist/nikolaydubina--go-recipes.json

1 line
No EOL
35 KiB
JSON

{"slug": "nikolaydubina--go-recipes", "title": "Go Recipes", "description": "\ud83e\udda9 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": "[\u23eb](#contents) Continuous Tests Monitoring with [codecov.io](https://app.codecov.io)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Make treemap of coverage with [go-cover-treemap (\u2b50589)](https://github.com/nikolaydubina/go-cover-treemap)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Browse coverage", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Browse coverage with [gocov-html (\u2b50231)](https://github.com/matm/gocov-html)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Browse coverage with [xgo (\u2b50428)](https://github.com/xhd2015/xgo)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Browse coverage in terminal with [gocovsh (\u2b50380)](https://github.com/orlangure/gocovsh)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Pretty print coverage in terminal with [nikandfor/cover (\u2b508)](https://github.com/nikandfor/cover)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Run coverage collector server with [goc (\u2b50875)](https://github.com/qiniu/goc)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Visualize live coverage in VSCode with [goc (\u2b50875)](https://github.com/qiniu/goc)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Detect drops in coverage with [go-test-coverage (\u2b50200)](https://github.com/vladopajic/go-test-coverage)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) :gift: Comment code coverage reports in pull request with [go-coverage-report (\u2b50109)](https://github.com/fgrosse/go-coverage-report)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) :gift: Differential coverage", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) :gift: Manipulate coverage profiles with [gopherage (\u2b504k)](https://github.com/kubernetes/test-infra/blob/master/gopherage)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Shuffle tests", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Run tests sequentially", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Run tests in parallel", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Run all Fuzz tests", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) :gift: Fuzz Go binaries using LibAFL with [GoLibAFL (\u2b5057)](https://github.com/srlabs/golibafl)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Detect goroutine leaks with [goleak (\u2b505k)](https://github.com/uber-go/goleak)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Detect goroutine leaks with [leaktest (\u2b501k)](https://github.com/fortytw2/leaktest)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Visualize test runs with [vgt (\u2b50347)](https://github.com/roblaszczak/vgt)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Summarize `go test` with [tparse (\u2b501.2k)](https://github.com/mfridman/tparse)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Decorate `go test` with [richgo (\u2b50865)](https://github.com/kyoh86/richgo)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Decorate `go test` with [gotest (\u2b501.4k)](https://github.com/rakyll/gotest)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Decorate `go test` with [gotestsum (\u2b502.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Format `go test` results as documentation with [gotestdox (\u2b50175)](https://github.com/bitfield/gotestdox)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Get slowest tests with [gotestsum (\u2b502.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Auto-Instrument skipping slowest tests with [gotestsum (\u2b502.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Automatically re-run failed tests with [gotestsum (\u2b502.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Make `JSUnit` test report with [gotestsum (\u2b502.5k)](https://github.com/gotestyourself/gotestsum)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Make `JSUnit` test report with [go-junit-report (\u2b50820)](https://github.com/jstemmer/go-junit-report)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Get packages without tests", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Perform Mutation Testing with [ooze (\u2b50279)](https://github.com/gtramontina/ooze)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Perform Mutation Testing with [avito-tech/go-mutesting (\u2b50199)](https://github.com/avito-tech/go-mutesting)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Perform Mutation Testing with [go-mutesting (\u2b50661)](https://github.com/zimmski/go-mutesting)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Trace tests with [go-test-trace (\u2b50391)](https://github.com/rakyll/go-test-trace)", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Speedup tests for large codebases", "parent": "Test", "entries": []}, {"name": "[\u23eb](#contents) Upgrade dependencies", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Get Go version of current module", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Get Go versions of upstream modules", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Get directly dependent modules that can be upgraded", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Get upstream modules without Go version", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Get available module versions", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Get go module libyear, number of releases, version delta with [go-libyear (\u2b5042)](https://github.com/nieomylnieja/go-libyear)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Make graph of upstream modules with [modgraphviz](https://golang.org/x/exp/cmd/modgraphviz)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Make graph of upstream packages with [import-graph (\u2b5043)](https://github.com/nikolaydubina/import-graph)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Scrape details about upstream modules and make graph with [import-graph (\u2b5043)](https://github.com/nikolaydubina/import-graph)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Scrape licenses of upstream dependencies with [go-licenses (\u2b50967)](https://github.com/google/go-licenses)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Explore dependencies with [goda (\u2b501.6k)](https://github.com/loov/goda)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Explore dependencies interactively with [spaghetti (\u2b50767)](https://github.com/adonovan/spaghetti)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Explore dependencies graph interactively with [modview (\u2b50225)](https://github.com/bayraktugrul/modview)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Explore dependencies graph in CLI with [depth (\u2b501.1k)](https://github.com/KyleBanks/depth)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Explore your `GOPATH` with GUI with [goggles (\u2b50666)](https://github.com/KyleBanks/goggles)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Enforce Go code architecture with [go-arch-lint (\u2b50426)](https://github.com/fe3dback/go-arch-lint)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Check Clean Architecture with [go-cleanarch (\u2b50958)](https://github.com/roblaszczak/go-cleanarch)", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Use `go mod` directives", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Locally patch dependency with `replace`", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Locally patch dependency with `go.work`", "parent": "Dependencies", "entries": []}, {"name": "[\u23eb](#contents) Make C4 diagram with [go-structurizr (\u2b50358)](https://github.com/krzysztofreczek/go-structurizr)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Make graph of function calls with [callgraph](https://golang.org/x/tools/cmd/callgraph)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Make graph of function calls in package with [go-callvis (\u2b506.4k)](https://github.com/ofabry/go-callvis)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Make PlantUML diagram with [goplantuml (\u2b502.1k)](https://github.com/jfeliu007/goplantuml)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Make PlantUML diagram with [go-plantuml (\u2b50411)](https://github.com/bykof/go-plantuml)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Visualize the entropy of a code base with a 3D force-directed graph with [dep-tree (\u2b501.7k)](https://github.com/gabotechs/dep-tree)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Make 3D chart of Go codebase with [gocity (\u2b501.8k)](https://github.com/rodrigo-brito/gocity)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Make histogram of Go files per package", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Explore Go code in browser powered by `go-guru` with [pythia (\u2b50340)](https://github.com/fzipp/pythia)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Interactively visualize packages with [goexplorer (\u2b50180)](https://github.com/ofabry/goexplorer)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Make D2 graph of architecture and dependencies with [go-arch-lint graph (\u2b50426)](https://github.com/fe3dback/go-arch-lint)", "parent": "Code Visualization", "entries": []}, {"name": "[\u23eb](#contents) Run `go:generate` in parallel", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate `String` method for enum types", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate enums encoding with [go-enum-encoding (\u2b5015)](https://github.com/nikolaydubina/go-enum-encoding)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate enums with [goenums (\u2b50371)](https://github.com/zarldev/goenums)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate data types from JSON Schema with [go-jsonschema (\u2b50763)](https://github.com/omissis/go-jsonschema)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate constructor for a struct with [gonstructor (\u2b5093)](https://github.com/moznion/gonstructor)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate Table Driven Tests with [gotests (\u2b505.3k)](https://github.com/cweill/gotests)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate mocks with [mockgen (\u2b503.2k)](https://github.com/uber-go/mock)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate interface for a struct with [ifacemaker (\u2b50348)](https://github.com/vburenin/ifacemaker)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate interface for a struct with [interfacer (\u2b50432)](https://github.com/rjeczalik/interfaces)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate interface for a struct with [struct2interface (\u2b5020)](https://github.com/reflog/struct2interface)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate interface for `CSV` file with [structer (\u2b50432)](https://github.com/rjeczalik/interfaces)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate decorator for interface with [gowrap (\u2b501.3k)](https://github.com/hexdigest/gowrap)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Modify struct field tags with [gomodifytags (\u2b502.4k)](https://github.com/fatih/gomodifytags)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate code from OpenAPI 3 specification with [oapi-codegen (\u2b507.9k)](https://github.com/oapi-codegen/oapi-codegen)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Generate C-Go Bindings with [c-for-go (\u2b501.6k)](https://github.com/xlab/c-for-go?tab=readme-ov-file)", "parent": "Code Generation", "entries": []}, {"name": "[\u23eb](#contents) Enum via generics with [enum (\u2b50449)](https://github.com/orsinium-labs/enum)", "parent": "Generics", "entries": []}, {"name": "[\u23eb](#contents) Replace symbol with `gofmt`", "parent": "Refactor", "entries": []}, {"name": "[\u23eb](#contents) Apply refactoring patches with [gopatch (\u2b501k)](https://github.com/uber-go/gopatch)", "parent": "Refactor", "entries": []}, {"name": "[\u23eb](#contents) Keep consistent ordering of imports with [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports)", "parent": "Refactor", "entries": []}, {"name": "[\u23eb](#contents) Keep consistent ordering of imports with [gci (\u2b50535)](https://github.com/daixiang0/gci)", "parent": "Refactor", "entries": []}, {"name": "[\u23eb](#contents) Keep consistent ordering of imports with [goimportx (\u2b5010)](https://github.com/anqiansong/goimportx/tree/main)", "parent": "Refactor", "entries": []}, {"name": "[\u23eb](#contents) Errors with return traces with [errtrace (\u2b50785)](https://github.com/bracesdev/errtrace)", "parent": "Errors", "entries": []}, {"name": "[\u23eb](#contents) Errors with stack traces and source fragments with [tracerr (\u2b501.1k)](https://github.com/ztrue/tracerr)", "parent": "Errors", "entries": []}, {"name": "[\u23eb](#contents) Pretty print `panic` messages with [panicparse (\u2b503.7k)](https://github.com/maruel/panicparse)", "parent": "Errors", "entries": []}, {"name": "[\u23eb](#contents) :gift: Generate errors from a spec with [zederr (\u2b505)](https://github.com/amanbolat/zederr)", "parent": "Errors", "entries": []}, {"name": "[\u23eb](#contents) Fetch private dependencies in CI", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Show compiler optimization decisions on heap and inlining", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Disable inlining", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Aggressive inlining", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) :gift: Reduce size of binary", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Profile-guided optimization", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Manually disable or enable `cgo`", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Include metadata in binary during compilation with `ldflags`", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Check if symbol or package is included in binary", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Build for Raspberry Pi, Virtual Machine, embedded or normal PC with [gokrazy (\u2b503.4k)](https://github.com/gokrazy/gokrazy)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Visualise dependencies size in compiled binaries with [go-size-analyzer (\u2b501.8k)](https://github.com/Zxilly/go-size-analyzer)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Make treemap breakdown of Go executable binary with [go-binsize-treemap (\u2b50588)](https://github.com/nikolaydubina/go-binsize-treemap)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Custom import path", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Custom import path with [govanityurls (\u2b50537)](https://github.com/GoogleCloudPlatform/govanityurls)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Custom import path with [sally (\u2b50336)](https://github.com/uber-go/sally)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Custom import path with [kkn.fi/vanity](https://kkn.fi/vanity)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Custom import path enforcement", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Manage multiple Go versions with [Goenv (\u2b5037)](https://github.com/Norwik/Goenv)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Transpile C to Go with [cxgo (\u2b50377)](https://github.com/gotranspile/cxgo)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Transpile Go to Javascript with [gopherjs (\u2b5013k)](https://github.com/gopherjs/gopherjs)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Run compile-time function evaluation with [prep (\u2b50484)](https://github.com/pijng/prep)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) :gift: Containerize your builds with [brewkit (\u2b5029)](https://github.com/ispringtech/brewkit)", "parent": "Build", "entries": []}, {"name": "[\u23eb](#contents) Get assembly of Go code snippets online", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) Get Go SSA intermediary representation with [ssaplayground (\u2b5081)](https://github.com/golang-design/ssaplayground)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) View Go assembly interactively with [lensm (\u2b503.6k)](https://github.com/loov/lensm)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) View Go assembly with color annotation with [pat/disfunc (\u2b5011)](https://github.com/maruel/pat)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) Generate Go assembly in Go with [avo (\u2b502.9k)](https://github.com/mmcloughlin/avo)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) Generate AST for code snippets with `go/ast`", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) Generate AST for code snippets with [go2ast (\u2b50122)](https://github.com/reflog/go2ast)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) Visualize Go SSA function using Graphviz with [go-ssaviz (\u2b5049)](https://github.com/SilverRainZ/go-ssaviz)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) Make graph of AST with [astgraph (\u2b5020)](https://github.com/xiazemin/ast_graph)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) Convert C assembly to Go assembly with [c2goasm (\u2b501.3k)](https://github.com/minio/c2goasm)", "parent": "Assembly", "entries": []}, {"name": "[\u23eb](#contents) :gift: Automatically set memory and cpu limits in K8S", "parent": "Deployment", "entries": []}, {"name": "[\u23eb](#contents) Embed Go Playground to your blog with [codapi (\u2b502k)](https://github.com/nalgeon/codapi)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Embed Go Playground to your blog with [goplay (\u2b5011)](https://github.com/ggicci/goplay)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Run alternative Go Playground with [goplay.tools (\u2b501.4k)](https://github.com/x1unix/go-playground)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Use TinyGo Playground with [tinygo](https://play.tinygo.org)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Run interactive Go kernels in Jupyter Notebook with [gophernotes (\u2b504k)](https://github.com/gopherdata/gophernotes)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Run interactive Go interpreter with [yaegi (\u2b508k)](https://github.com/traefik/yaegi)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Run interactive Go interpreter with [gomacro (\u2b502.3k)](https://github.com/cosmos72/gomacro)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Run Go function in shell with [gorram (\u2b501.1k)](https://github.com/natefinch/gorram)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Run Go function in shell with [gosh (\u2b5041)](https://github.com/nickwells/utilities/blob/master/gosh/_gosh.DOC.md)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Run simple fileserver with `net/http`", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Create 3D visualization of concurrency traces with [gotrace (\u2b502k)](https://github.com/divan/gotrace)", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Wrap command with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Capture output of command to file with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Capture output of command and process it with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Piping between processes with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) `errgroup` and CommandContext with `os/exec`", "parent": "Execution", "entries": []}, {"name": "[\u23eb](#contents) Monitor Go Runtime metrics with [opentelemetry](https://pkg.go.dev/go.opentelemetry.io/contrib/instrumentation/runtime)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Monitor goroutines with [grmon (\u2b501.9k)](https://github.com/bcicen/grmon)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Monitor Go processes with [gops (\u2b507k)](https://github.com/google/gops)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Monitor Go runtime metrics in browser with [live-pprof (\u2b50314)](https://github.com/moderato-app/live-pprof)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Monitor Go runtime metrics in browser with [statsviz (\u2b503.6k)](https://github.com/arl/statsviz)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Auto-Instrument all functions with [go-instrument (\u2b50287)](https://github.com/nikolaydubina/go-instrument)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Auto-Instrument all functions with [otelinji (\u2b5026)](https://github.com/hedhyw/otelinji)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Auto-Instrument functions for DataDog with [orchestrion (\u2b50492)](https://github.com/DataDog/orchestrion)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Continuous Profiling with [Pyroscope (\u2b5011k)](https://github.com/grafana/pyroscope)", "parent": "Monitor", "entries": []}, {"name": "[\u23eb](#contents) Run benchmarks", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Table-driven benchmarks", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Align benchmark output", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Generate benchmark CPU and Memory profiles with `go test`", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Visualize callgraph of profiles with `pprof`", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Visualize flamegraphs of profiles with `pprof`", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Visualize profiles online", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) :gift: Profile and visualizse (with video) Go profiles through eBPF with [go-profile (\u2b5028)](https://github.com/benbaker76/go-profile)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Get delta between two benchmarks with [benchstat](https://golang.org/x/perf/cmd/benchstat)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Get summary of benchmarks with [benchstat](https://golang.org/x/perf/cmd/benchstat)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Benchmark against git commit with [pat/ba (\u2b5011)](https://github.com/maruel/pat)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Continuous benchmarking", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Continuous benchmarking with [gobenchdata (\u2b50151)](https://github.com/bobheadxi/gobenchdata)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Continuous benchmarking with [benchdiff (\u2b5068)](https://github.com/willabides/benchdiff)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Continuous benchmarking with [cob (\u2b50391)](https://github.com/knqyf263/cob)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Generate live traces with `net/http/trace`", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Generate traces with `go test`", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) View traces with `go tool trace`", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) View traces with [gotraceui (\u2b501.4k)](https://github.com/dominikh/gotraceui)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) View in-process traces with [trc (\u2b50102)](https://github.com/peterbourgon/trc)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) View wallclock traces with [fgtrace (\u2b50912)](https://github.com/felixge/fgtrace)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Get on/off CPU profiles with [fgprof (\u2b503.1k)](https://github.com/felixge/fgprof)", "parent": "Benchmark", "entries": []}, {"name": "[\u23eb](#contents) Make alternative documentation with [golds (\u2b50647)](https://github.com/go101/golds)", "parent": "Document", "entries": []}, {"name": "[\u23eb](#contents) Read Go binary documentation in `man` format with [goman (\u2b50126)](https://github.com/appliedgocode/goman)", "parent": "Document", "entries": []}, {"name": "[\u23eb](#contents) Generate badge with [gobadge (\u2b5024)](https://github.com/AlexBeauchemin/gobadge)", "parent": "Document", "entries": []}, {"name": "[\u23eb](#contents) Generate README.md based on GoDoc comments with [goreadme (\u2b50221)](https://github.com/posener/goreadme)", "parent": "Document", "entries": []}, {"name": "[\u23eb](#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": "[\u23eb](#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": "[\u23eb](#contents) Run official vulnerability check with [govulncheck](https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck)", "parent": "Security", "entries": []}, {"name": "[\u23eb](#contents) Detect escalated privileges in dependencies with [capslock (\u2b501.1k)](https://github.com/google/capslock)", "parent": "Security", "entries": []}, {"name": "[\u23eb](#contents) Run static analysis with [gosec (\u2b508.6k)](https://github.com/securego/gosec)", "parent": "Security", "entries": []}, {"name": "[\u23eb](#contents) Perform Taint Analysis with [taint (\u2b5080)](https://github.com/picatz/taint)", "parent": "Security", "entries": []}, {"name": "[\u23eb](#contents) Use Microsoft Go compiler with [microsoft/go (\u2b50404)](https://github.com/microsoft/go)", "parent": "Security", "entries": []}, {"name": "[\u23eb](#contents) Run default static analysis with `go vet`", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Run custom static analysis tool with `go vet`", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Run official static analyzers not included in `go vet`", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect most common issues with [staticcheck (\u2b506.7k)](https://github.com/dominikh/go-tools)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect potential Nil panics with [nilaway (\u2b503.7k)](https://github.com/uber-go/nilaway)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect most common issues with [go-critic (\u2b502k)](https://github.com/go-critic/go-critic)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Reference and run common linters with [golangci-lint](https://golangci-lint.run)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect non-exhaustive switch and map with [exhaustive (\u2b50329)](https://github.com/nishanths/exhaustive)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect structs with uninitialized fields with [go-exhaustruct (\u2b50182)](https://github.com/GaijinEntertainment/go-exhaustruct)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) :gift: Detect missing cascade calls with [go-lint-cascade (\u2b502)](https://github.com/nikolaydubina/go-lint-cascade)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect unreachable functions with [deadcode](https://pkg.go.dev/golang.org/x/tools/cmd/deadcode)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect unsafe code with [go-safer (\u2b5043)](https://github.com/jlauinger/go-safer)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect `panic` without explaining comment with [panic-linter (\u2b500)](https://github.com/ldemailly/panic-linter)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect unnecessary type conversions with [unconvert (\u2b50385)](https://github.com/mdempsky/unconvert)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect global variables with [gochecknoglobals (\u2b50123)](https://github.com/leighmcculloch/gochecknoglobals)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect slices that could be preallocated with [prealloc (\u2b50659)](https://github.com/alexkohler/prealloc)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect unnecessary import aliases with [unimport (\u2b5070)](https://github.com/alexkohler/unimport)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect unexpected import aliases with [importas (\u2b5016)](https://github.com/julz/importas)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect inconsistent import aliases with [consistentimports (\u2b502)](https://github.com/nikolaydubina/consistentimports)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect naked returns with [nakedret (\u2b50131)](https://github.com/alexkohler/nakedret)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect mixing pointer and value method receivers with [smrcptr (\u2b5013)](https://github.com/nikolaydubina/smrcptr)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect vertical function ordering with [vertfn (\u2b5019)](https://github.com/nikolaydubina/vertfn)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect vertical symbol ordering with [refdir (\u2b506)](https://github.com/devnev/refdir)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect tests with wrong `t.Parallel()` usage with [paralleltest (\u2b5059)](https://github.com/kunwardeep/paralleltest)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect tests with wrong `t.Parallel()` usage with [tparallel (\u2b5026)](https://github.com/moricho/tparallel)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect magic numbers with [mnd (\u2b50203)](https://github.com/tommy-muehle/go-mnd)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect magic strings with [goconst (\u2b50313)](https://github.com/jgautheron/goconst)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect bound checks with [pat/boundcheck (\u2b5011)](https://github.com/maruel/pat)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) :gift: Detect performance optimizations with [perfsprint (\u2b5043)](https://github.com/catenacyber/perfsprint)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Calculate Cognitive Complexity with [gocognit (\u2b50432)](https://github.com/uudashr/gocognit)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Calculate Cyclomatic Complexity with [gocyclo (\u2b501.5k)](https://github.com/fzipp/gocyclo)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Calculate Cyclomatic Complexity with [cyclop (\u2b5054)](https://github.com/bkielbasa/cyclop)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Calculate age of comments with [go-commentage (\u2b504)](https://github.com/nikolaydubina/go-commentage)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Ensure `if` statements using short assignment with [ifshort (\u2b5018)](https://github.com/esimonov/ifshort)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect sub-optimal struct layout with [betteralign (\u2b50918)](https://github.com/dkorunic/betteralign)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Detect sub-optimal struct layout with [structlayout-optimize (\u2b506.7k)](https://github.com/dominikh/go-tools/blob/master/cmd/structlayout-optimize)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Visualize struct layout with [structlayout (\u2b506.7k)](https://github.com/dominikh/go-tools/tree/master/cmd/structlayout)", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Rely on compiler for stricter Enums", "parent": "Static Analysis", "entries": []}, {"name": "[\u23eb](#contents) Analyze function callsites with [go-callsite-stats (\u2b502)](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": ""}]}], "name": ""}