Code Analysis

Go program code code analysis

Newest releases

orijtech structslop is a static analyzer for Go that recommends struct field rearrangements to provide for maximum space/allocation efficiency.

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 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: 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

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 Usage Similar to other Go

qax-os 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

dominikh 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 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 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 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 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