Code Analysis

Go program code code analysis

Newest releases

pyroscope-io Continuous profiling platform — find bottlenecks in your code!
 

get-woke Creating an inclusive work environment is imperative to a healthy, supportive, and productive culture, and an environment where everyone feels welcome and included.
 

dgryski A collection of Go style guides
 

preslavmihaylov todocheck is a static code analyzer for annotated TODO comments.
 

gostaticanalysis godump dumps AST and SSA IR of given package.
 

felixge 🚀 fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.
 

reviewdog reviewdog - A code review dog who keeps your codebase healthy. reviewdog provides a way to post review comments to code hosting
 

dominikh unused unused checks Go code for unused constants, variables, functions and types. Install go get honnef.co/go/unused/cmd/unused Usage unused -help Usage Tips
 

VKCOM NoVerify NoVerify is a linter for PHP: it searches for potential problems in your code. It allows to write your own rules as well and it has no config: all reports it generates are potential errors that must be fixed, o
 

alexkohler dogsled dogsled is a Go static analysis tool to find assignments/declarations with too many blank identifiers (e.g. x, _, _, _, := f()). Its name was inspired from this reddit post. Installation go get -u g
 

rodrigo-brito Available here: https://go-city.github.io Research Paper: 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) PDF Version: ASERG Page GoCity is an implementation of the Code City
 

fossas fossa-cli - Fast, portable, and reliable dependency analysis for any codebase. Background fossa analyzes complex codebases to generate dependency reports and license notices. It can generate fa
 

alexkohler identypo identypo is a Go static analysis tool to find typos in identifiers (functions, function calls, variables, constants, type declarations, packages, labels) including CamelCased functions, variables, etc. It is b
 
Popular
7.5k

golangci GolangCI-Lint GolangCI-Lint is a linters aggregator. It's fast: on average 5 times faster than gometalinter. It's easy to integrate and use, has nice output and has a minimum number of false positives. It supports
 

alexkohler prealloc prealloc is a Go static analysis tool to find slice declarations that could potentially be preallocated. Installation go get -u github.com/alexkohler/prealloc Usage Similar to other Go
 

360EntSecGroup-Skylar goreporter A Golang tool that does static analysis, unit testing, code review and generate code quality report. This is a tool that concurrently runs a whole bunch of those linters and normalizes their output to
 

mreithub GoRef - Simple (and fast) go-style invocation tracker GoRef is a small Go package which implements a simple key-based method invocation counter and timing profiler. It can be used to: track execution time of your
 
Popular
3.8k

dominikh honnef.co/go/tools honnef.co/go/tools/... is a collection of tools and libraries for working with Go code, including linters and static analysis. These tools are supported by patrons on Patreon. If you, too, would like
 

ofabry go-callvis go-callvis is a development tool to help visualize call graph of a Go program using interactive view. Introduction The purpose of this tool is to provide developers with a visual overvie
 

cstockton Go Package: srcutil About | Go Doc Get: go get -u github.com/cstockton/go-srcutil Example: pkg, err := srcutil.Import("io") if err != nil { log.Fatal(err) } fmt.Printf("// %s: %s\n", pkg, pkg.Doc) var
 

reviewdog reviewdog - A code review dog who keeps your codebase healthy. reviewdog provides a way to post review comments to code hosting
 

mvdan interfacer - A linter that suggests interface types
 

alecthomas Go Meta Linter gometalinter is DEPRECATED and the project will be archived on 2019-04-07. See #590 for discussion. Switch to golangci-lint. Installing Binary Releases Homebrew Editor integ
 

golang Golint is a linter for Go source code. Installation Golint requires Go 1.6 or later. go get -u github.com/golang/lint/golint Usage Invoke golint with one or more filenames, a directory, or a package nam
 

yuroyoro GoAst Viewer Golang AST visualizer. Demo GoAst Viewer Demo Usage You just need to run a http server and open your browser to index.html Installation To install, use go get and make
 

firstrow This project is not supported anymore Go-outdated is minimalistic library that helps to find outdated packages hosted on github.com in your golang project. Installation Install the library with: go get
 

mibk dupl dupl is a tool written in Go for finding code clones. So far it can find clones only in the Go source files. The method uses suffix tree for serialized ASTs. It ignores values of AST nodes. It just operates with t
 

kisielk errcheck errcheck is a program for checking for unchecked errors in go programs. Install go get -u github.com/kisielk/errcheck errcheck requires Go 1.9 or newer and depends on the package go/packages fro
 

davecheney gcvis Visualise Go program gctrace data in real time Note: GC timing graphs are only supported for go 1.6 Usage Running it directly: env GOMAXPROCS=4 gcvis godoc -index -http=:6060 Adding the gctrace f