Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

go-recipes

🦩 Tools for Go projects
https://github.com/nikolaydubina/go-recipes

Last synced: 4 days ago
JSON representation

  • Documentation

    • [⏫](#contents) Generate README.md based on GoDoc comments with [goreadme](https://github.com/posener/goreadme)

    • [⏫](#contents) Make alternative documentation with [golds](https://github.com/go101/golds)

    • [⏫](#contents) Read Go binary documentation in `man` format with [goman](https://github.com/appliedgocode/goman)

  • Static Analysis

  • Testing

    • [⏫](#contents) Run tests in parallel

      • here - Testing_flags).
    • [⏫](#contents) Perform Mutation Testing with [avito-tech/go-mutesting](https://github.com/avito-tech/go-mutesting)

    • [⏫](#contents) Trace tests with [go-test-trace](https://github.com/rakyll/go-test-trace)

    • [⏫](#contents) Detect goroutine leaks with [leaktest](https://github.com/fortytw2/leaktest)

    • [⏫](#contents) Browse coverage with [gocov-html](https://github.com/matm/gocov-html)

    • [⏫](#contents) Browse coverage in terminal with [gocovsh](https://github.com/orlangure/gocovsh)

    • [⏫](#contents) Pretty print coverage in terminal with [nikandfor/cover](https://github.com/nikandfor/cover)

    • [⏫](#contents) Visualize live coverage in VSCode with [goc](https://github.com/qiniu/goc)

    • [⏫](#contents) Summarize `go test` with [tparse](https://github.com/mfridman/tparse)

    • [⏫](#contents) Decorate `go test` with [richgo](https://github.com/kyoh86/richgo)

    • [⏫](#contents) Format `go test` results as documentation with [gotestdox](https://github.com/bitfield/gotestdox)

    • [⏫](#contents) Make `JSUnit` test report with [go-junit-report](https://github.com/jstemmer/go-junit-report)

    • [⏫](#contents) Perform Mutation Testing with [ooze](https://github.com/gtramontina/ooze)

    • [⏫](#contents) Perform Mutation Testing with [go-mutesting](https://github.com/zimmski/go-mutesting)

    • [⏫](#contents) Make `JSUnit` test report with [gotestsum](https://github.com/gotestyourself/gotestsum)

  • Code Visualization

    • [⏫](#contents) Explore Go code in browser powered by `go-guru` with [pythia](https://github.com/fzipp/pythia)

    • [⏫](#contents) Make PlantUML diagram with [go-plantuml](https://github.com/bykof/go-plantuml)

    • [⏫](#contents) :derelict_house: Interactively visualize packages with [goexplorer](https://github.com/ofabry/goexplorer)

    • [⏫](#contents) Make 3D chart of Go codebase with [gocity](https://github.com/rodrigo-brito/gocity)

      • GoCity Code City for Go - city.github.io](https://go-city.github.io). — [@rodrigo-brito](https://github.com/rodrigo-brito)
    • [⏫](#contents) Make D2 graph of architecture and dependencies with [go-arch-lint graph](https://github.com/fe3dback/go-arch-lint)

  • Code Generation

    • [⏫](#contents) Run `go:generate` in parallel

    • [⏫](#contents) Generate interface for a struct with [ifacemaker](https://github.com/vburenin/ifacemaker)

    • [⏫](#contents) Generate interface for `CSV` file with [structer](https://github.com/rjeczalik/interfaces)

    • [⏫](#contents) Generate code from OpenAPI 3 specification with [oapi-codegen](https://github.com/deepmap/oapi-codegen)

    • [⏫](#contents) Generate enums with [goenums](https://github.com/zarldev/goenums)

    • [⏫](#contents) :fire: Generate data types from JSON Schema with [go-jsonschema](https://github.com/omissis/go-jsonschema)

    • [⏫](#contents) :fire: Generate constructor for a struct with [gonstructor](https://github.com/moznion/gonstructor)

    • [⏫](#contents) Generate Table Driven Tests with [gotests](https://github.com/cweill/gotests)

    • [⏫](#contents) Modify struct field tags with [gomodifytags](https://github.com/fatih/gomodifytags)

  • Style Guide

  • Sample Code

    • [⏫](#contents) Run Go function in shell with [gosh](https://github.com/nickwells/utilities/blob/master/gosh/_gosh.DOC.md)

    • [⏫](#contents) Create 3D visualization of concurrency traces with [gotrace](https://github.com/divan/gotrace)

    • [⏫](#contents) Run interactive Go kernels in Jupyter Notebook with [gophernotes](https://github.com/gopherdata/gophernotes)

    • [⏫](#contents) Run alternative Go Playground with [goplay.tools](https://github.com/x1unix/go-playground)

    • [⏫](#contents) Run interactive Go interpreter with [gomacro](https://github.com/cosmos72/gomacro)

    • [⏫](#contents) Run Go function in shell with [gorram](https://github.com/natefinch/gorram)

    • [⏫](#contents) Run interactive Go interpreter with [yaegi](https://github.com/traefik/yaegi)

    • [⏫](#contents) `errgroup` and CommandContext with `os/exec`

  • Monitoring

    • [⏫](#contents) Monitor goroutines with [grmon](https://github.com/bcicen/grmon)

    • [⏫](#contents) Visualise Go runtime metrics in browser with [statsviz](https://github.com/arl/statsviz)

    • [⏫](#contents) Auto-Instrument all functions with [otelinji](https://github.com/hedhyw/otelinji)

    • [⏫](#contents) :fire: Auto-Instrument functions for DataDog with [orchestrion](https://github.com/DataDog/orchestrion)

    • [⏫](#contents) Continious Profiling with [Pyroscope](https://github.com/grafana/pyroscope)

  • Assembly

    • [⏫](#contents) Generate AST for code snippets with [go2ast](https://github.com/reflog/go2ast)

    • [⏫](#contents) Get Go SSA intermediary representation with [ssaplayground](https://github.com/golang-design/ssaplayground)

    • [⏫](#contents) View Go assembly interactively with [lensm](https://github.com/loov/lensm)

    • [⏫](#contents) Generate Go assembly in Go with [avo](https://github.com/mmcloughlin/avo)

    • [⏫](#contents) Visualize Go SSA function using Graphviz with [go-ssaviz](https://github.com/SilverRainZ/go-ssaviz)

    • [⏫](#contents) :derelict_house: Make graph of AST with [astgraph](https://github.com/xiazemin/ast_graph)

    • [⏫](#contents) :derelict_house: Convert C assembly to Go assembly with [c2goasm](https://github.com/minio/c2goasm)

    • [⏫](#contents) Get assembly of Go code snippets online

  • Refactoring

    • [⏫](#contents) Keep consistent ordering of imports with [goimportx](https://github.com/anqiansong/goimportx/tree/main)

    • [⏫](#contents) Replace symbol with `gofmt`

    • [⏫](#contents) Keep consistent ordering of imports with [gci](https://github.com/daixiang0/gci)

  • Errors

    • [⏫](#contents) :fire: Errors with return traces with [errtrace](https://github.com/bracesdev/errtrace)

    • [⏫](#contents) Errors with stack traces and source fragments with [tracerr](https://github.com/ztrue/tracerr)

  • Building

    • [⏫](#contents) Profile-guided optimization

    • [⏫](#contents) Custom import path with [kkn.fi/vanity](https://kkn.fi/vanity)

    • [⏫](#contents) :fire: Manage multiple Go versions with [Goenv](https://github.com/Norwik/Goenv)

    • [⏫](#contents) Visualise dependencies size in compiled binaries with [go-size-analyzer](https://github.com/Zxilly/go-size-analyzer)

  • Benchmarking

    • [⏫](#contents) Table-driven benchmarks

    • [⏫](#contents) Visualize callgraph of profiles with `pprof`

      • blog - doc](https://pkg.go.dev/net/http/pprof). — official Go team
    • [⏫](#contents) Visualize flamegraphs of profiles with `pprof`

      • Flamegraphs - http` to start webserver. Then it is available in "View > Graph" in at http://0.0.0.0:80. — Google
    • [⏫](#contents) Continuous benchmarking

      • spec - benchmarking-with-go-and-github-actions-41ok) from [@vearutop](https://github.com/vearutop), and an example on how it produces a PR [comment](https://github.com/swaggest/rest/pull/88#issuecomment-1271540878).
    • [⏫](#contents) Continuous benchmarking with [gobenchdata](https://github.com/bobheadxi/gobenchdata)

    • [⏫](#contents) Continuous benchmarking with [benchdiff](https://github.com/willabides/benchdiff)

    • [⏫](#contents) Continuous benchmarking with [cob](https://https://github.com/knqyf263/cob)

    • [⏫](#contents) Generate live traces with `net/http/trace`

    • [⏫](#contents) Collect and visualize in-process traces with [trc](https://github.com/peterbourgon/trc)

    • [⏫](#contents) Run benchmarks

    • [⏫](#contents) Get on/off CPU profiles with [fgprof](https://github.com/felixge/fgprof)

  • Education

    • [⏫](#contents) Run Turtle Graphics online with [goplay.space](https://goplay.space/#wT_eZWJT69)

  • Security

    • [⏫](#contents) Perform Taint Analysis with [taint](https://github.com/picatz/taint)

  • AI tools

    • [⏫](#contents) Code analysis and recommendations with [charmbracelet/mods](https://github.com/charmbracelet/mods)

      • Charm - skynet/LocalAI). It passes arbitrary human language command string and concatenated with STDIN input. Multiple useful commands are possible.
    • [⏫](#contents) Pull request recommendations with [gpt-pullrequest-updater](https://github.com/ravilushqa/gpt-pullrequest-updater)

    • [⏫](#contents) Pull requests recommendations with [CopilotX](https://github.com/features/preview/copilot-x)

  • Dependencies

    • [⏫](#contents) Make graph of upstream modules with [gmchart](https://github.com/PaulXu-cn/go-mod-graph-chart/gmchart)

    • [⏫](#contents) Explore dependencies interactively with [spaghetti](https://github.com/adonovan/spaghetti)

Programming Languages
Sub Categories
[⏫](#contents) Calculate Cognitive Complexity with [gocognit](https://github.com/uudashr/gocognit) 23 [⏫](#contents) Run Turtle Graphics online with [goplay.space](https://goplay.space/#wT_eZWJT69) 3 [⏫](#contents) Make PlantUML diagram with [go-plantuml](https://github.com/bykof/go-plantuml) 1 [⏫](#contents) Run benchmarks 1 [⏫](#contents) `errgroup` and CommandContext with `os/exec` 1 [⏫](#contents) Table-driven benchmarks 1 [⏫](#contents) Run Go function in shell with [gorram](https://github.com/natefinch/gorram) 1 [⏫](#contents) Perform Mutation Testing with [avito-tech/go-mutesting](https://github.com/avito-tech/go-mutesting) 1 [⏫](#contents) Detect mixing pointer and value method receivers with [smrcptr](https://github.com/nikolaydubina/smrcptr) 1 [⏫](#contents) Run interactive Go kernels in Jupyter Notebook with [gophernotes](https://github.com/gopherdata/gophernotes) 1 [⏫](#contents) Detect global variables with [gochecknoglobals](https://github.com/leighmcculloch/gochecknoglobals) 1 [⏫](#contents) :fire: Generate data types from JSON Schema with [go-jsonschema](https://github.com/omissis/go-jsonschema) 1 [⏫](#contents) Visualize callgraph of profiles with `pprof` 1 [⏫](#contents) Calculate Cyclomatic Complexity with [cyclop](https://github.com/bkielbasa/cyclop) 1 [⏫](#contents) Decorate `go test` with [richgo](https://github.com/kyoh86/richgo) 1 [⏫](#contents) Keep consistent ordering of imports with [gci](https://github.com/daixiang0/gci) 1 [⏫](#contents) Detect unnecessary type conversions with [unconvert](https://github.com/mdempsky/unconvert) 1 [⏫](#contents) Trace tests with [go-test-trace](https://github.com/rakyll/go-test-trace) 1 [⏫](#contents) Run alternative Go Playground with [goplay.tools](https://github.com/x1unix/go-playground) 1 [⏫](#contents) Detect tests with wrong `t.Parallel()` usage with [paralleltest](https://github.com/kunwardeep/paralleltest) 1 [⏫](#contents) Perform Mutation Testing with [go-mutesting](https://github.com/zimmski/go-mutesting) 1 [⏫](#contents) Collect and visualize in-process traces with [trc](https://github.com/peterbourgon/trc) 1 [⏫](#contents) Detect magic numbers with [mnd](https://github.com/tommy-muehle/go-mnd) 1 [⏫](#contents) Profile-guided optimization 1 [⏫](#contents) Generate live traces with `net/http/trace` 1 [⏫](#contents) Continuous benchmarking with [gobenchdata](https://github.com/bobheadxi/gobenchdata) 1 [⏫](#contents) Replace symbol with `gofmt` 1 [⏫](#contents) Code analysis and recommendations with [charmbracelet/mods](https://github.com/charmbracelet/mods) 1 [⏫](#contents) Detect unnecessary import aliases with [unimport](https://github.com/alexkohler/unimport) 1 [⏫](#contents) Read Go binary documentation in `man` format with [goman](https://github.com/appliedgocode/goman) 1 [⏫](#contents) Make 3D chart of Go codebase with [gocity](https://github.com/rodrigo-brito/gocity) 1 [⏫](#contents) :fire: Auto-Instrument functions for DataDog with [orchestrion](https://github.com/DataDog/orchestrion) 1 [⏫](#contents) Continious Profiling with [Pyroscope](https://github.com/grafana/pyroscope) 1 [⏫](#contents) Get Go SSA intermediary representation with [ssaplayground](https://github.com/golang-design/ssaplayground) 1 [⏫](#contents) Summarize `go test` with [tparse](https://github.com/mfridman/tparse) 1 [⏫](#contents) Calculate age of comments with [go-commentage](https://github.com/nikolaydubina/go-commentage) 1 [⏫](#contents) Continuous benchmarking 1 [⏫](#contents) Generate interface for `CSV` file with [structer](https://github.com/rjeczalik/interfaces) 1 [⏫](#contents) Detect structs with uninitialized fields with [go-exhaustruct](https://github.com/GaijinEntertainment/go-exhaustruct) 1 [⏫](#contents) Generate enums with [goenums](https://github.com/zarldev/goenums) 1 [⏫](#contents) Explore Go code in browser powered by `go-guru` with [pythia](https://github.com/fzipp/pythia) 1 [⏫](#contents) Run Go function in shell with [gosh](https://github.com/nickwells/utilities/blob/master/gosh/_gosh.DOC.md) 1 [⏫](#contents) Detect unsafe code with [go-safer](https://github.com/jlauinger/go-safer) 1 [⏫](#contents) Calculate Cyclomatic Complexity with [gocyclo](https://github.com/fzipp/gocyclo) 1 [⏫](#contents) Get on/off CPU profiles with [fgprof](https://github.com/felixge/fgprof) 1 [⏫](#contents) Make `JSUnit` test report with [gotestsum](https://github.com/gotestyourself/gotestsum) 1 [⏫](#contents) Monitor goroutines with [grmon](https://github.com/bcicen/grmon) 1 [⏫](#contents) Browse coverage with [gocov-html](https://github.com/matm/gocov-html) 1 [⏫](#contents) Errors with stack traces and source fragments with [tracerr](https://github.com/ztrue/tracerr) 1 [⏫](#contents) :fire: Detect potential Nil panics with [nilaway](https://github.com/uber-go/nilaway) 1 [⏫](#contents) Make alternative documentation with [golds](https://github.com/go101/golds) 1 [⏫](#contents) :derelict_house: Make graph of AST with [astgraph](https://github.com/xiazemin/ast_graph) 1 [⏫](#contents) Pull request recommendations with [gpt-pullrequest-updater](https://github.com/ravilushqa/gpt-pullrequest-updater) 1 [⏫](#contents) Browse coverage in terminal with [gocovsh](https://github.com/orlangure/gocovsh) 1 [⏫](#contents) Format `go test` results as documentation with [gotestdox](https://github.com/bitfield/gotestdox) 1 [⏫](#contents) Pretty print coverage in terminal with [nikandfor/cover](https://github.com/nikandfor/cover) 1 [⏫](#contents) :derelict_house: Ensure `if` statements using short assignment with [ifshort](https://github.com/esimonov/ifshort) 1 [⏫](#contents) :fire: Detect bound checks with [pat/boundcheck](https://github.com/maruel/pat) 1 [⏫](#contents) :fire: Manage multiple Go versions with [Goenv](https://github.com/Norwik/Goenv) 1 [⏫](#contents) Generate AST for code snippets with [go2ast](https://github.com/reflog/go2ast) 1 [⏫](#contents) :derelict_house: Convert C assembly to Go assembly with [c2goasm](https://github.com/minio/c2goasm) 1 [⏫](#contents) Detect goroutine leaks with [leaktest](https://github.com/fortytw2/leaktest) 1 [⏫](#contents) Create 3D visualization of concurrency traces with [gotrace](https://github.com/divan/gotrace) 1 [⏫](#contents) Visualize flamegraphs of profiles with `pprof` 1 [⏫](#contents) Pull requests recommendations with [CopilotX](https://github.com/features/preview/copilot-x) 1 [⏫](#contents) Run interactive Go interpreter with [yaegi](https://github.com/traefik/yaegi) 1 [⏫](#contents) Detect non-exhaustive switch and map with [exhaustive](https://github.com/nishanths/exhaustive) 1 [⏫](#contents) Run interactive Go interpreter with [gomacro](https://github.com/cosmos72/gomacro) 1 [⏫](#contents) Visualise Go runtime metrics in browser with [statsviz](https://github.com/arl/statsviz) 1 [⏫](#contents) Keep consistent ordering of imports with [goimportx](https://github.com/anqiansong/goimportx/tree/main) 1 [⏫](#contents) Perform Taint Analysis with [taint](https://github.com/picatz/taint) 1 [⏫](#contents) Rely on compiler for stricter Enums 1 [⏫](#contents) :derelict_house: Interactively visualize packages with [goexplorer](https://github.com/ofabry/goexplorer) 1 [⏫](#contents) Run tests in parallel 1 [⏫](#contents) Generate interface for a struct with [ifacemaker](https://github.com/vburenin/ifacemaker) 1 [⏫](#contents) Make `JSUnit` test report with [go-junit-report](https://github.com/jstemmer/go-junit-report) 1 [⏫](#contents) :fire: Errors with return traces with [errtrace](https://github.com/bracesdev/errtrace) 1 [⏫](#contents) Detect vertical symbol ordering with [refdir](https://github.com/devnev/refdir) 1 [⏫](#contents) Visualize live coverage in VSCode with [goc](https://github.com/qiniu/goc) 1 [⏫](#contents) Generate Go assembly in Go with [avo](https://github.com/mmcloughlin/avo) 1 [⏫](#contents) Visualise dependencies size in compiled binaries with [go-size-analyzer](https://github.com/Zxilly/go-size-analyzer) 1 [⏫](#contents) Make D2 graph of architecture and dependencies with [go-arch-lint graph](https://github.com/fe3dback/go-arch-lint) 1 [⏫](#contents) Generate code from OpenAPI 3 specification with [oapi-codegen](https://github.com/deepmap/oapi-codegen) 1 [⏫](#contents) Detect tests with wrong `t.Parallel()` usage with [tparallel](https://github.com/moricho/tparallel) 1 [⏫](#contents) Continuous benchmarking with [cob](https://https://github.com/knqyf263/cob) 1 [⏫](#contents) View Go assembly interactively with [lensm](https://github.com/loov/lensm) 1 [⏫](#contents) Make graph of upstream modules with [gmchart](https://github.com/PaulXu-cn/go-mod-graph-chart/gmchart) 1 [⏫](#contents) Auto-Instrument all functions with [otelinji](https://github.com/hedhyw/otelinji) 1 [⏫](#contents) Visualize Go SSA function using Graphviz with [go-ssaviz](https://github.com/SilverRainZ/go-ssaviz) 1 [⏫](#contents) :fire: Detect magic strings with [goconst](https://github.com/jgautheron/goconst) 1 [⏫](#contents) Modify struct field tags with [gomodifytags](https://github.com/fatih/gomodifytags) 1 [⏫](#contents) Visualize struct layout with [structlayout](https://github.com/dominikh/go-tools/tree/master/cmd/structlayout) 1 [⏫](#contents) Continuous benchmarking with [benchdiff](https://github.com/willabides/benchdiff) 1 [⏫](#contents) Run `go:generate` in parallel 1 [⏫](#contents) Perform Mutation Testing with [ooze](https://github.com/gtramontina/ooze) 1 [⏫](#contents) Detect unexpected import aliases with [importas](https://github.com/julz/importas) 1 [⏫](#contents) Explore dependencies interactively with [spaghetti](https://github.com/adonovan/spaghetti) 1 [⏫](#contents) Generate README.md based on GoDoc comments with [goreadme](https://github.com/posener/goreadme) 1 [⏫](#contents) Generate Table Driven Tests with [gotests](https://github.com/cweill/gotests) 1 [⏫](#contents) Custom import path with [kkn.fi/vanity](https://kkn.fi/vanity) 1 [⏫](#contents) :fire: Generate constructor for a struct with [gonstructor](https://github.com/moznion/gonstructor) 1 [⏫](#contents) Get assembly of Go code snippets online 1