github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/README.md (about) 1 <div align="center"> 2 <h1><img alt="Staticcheck logo" src="/images/logo.svg" height="300" /><br /> 3 The advanced Go linter 4 </h1> 5 </div> 6 7 Staticcheck is a state of the art linter for the [Go programming 8 language](https://go.dev/). Using static analysis, it finds bugs and performance issues, 9 offers simplifications, and enforces style rules. 10 11 **Financial support by [private and corporate sponsors](https://staticcheck.dev/sponsors) guarantees the tool's continued development. 12 Please [become a sponsor](https://github.com/users/dominikh/sponsorship) if you or your company rely on Staticcheck.** 13 14 15 ## Documentation 16 17 You can find extensive documentation on Staticcheck on [its website](https://staticcheck.dev/docs/). 18 19 ## Installation 20 21 ### Releases 22 23 It is recommended that you run released versions of the tools. 24 These releases can be found as git tags (e.g. `2022.1`). 25 26 The easiest way of installing a release is by using `go install`, for example `go install github.com/amarpal/go-tools/cmd/staticcheck@2022.1`. 27 Alternatively, we also offer [prebuilt binaries](https://github.com/dominikh/go-tools/releases). 28 29 You can find more information about installation and releases in the [documentation](https://staticcheck.dev/docs/getting-started/). 30 31 ### Master 32 33 You can also run the master branch instead of a release. Note that 34 while the master branch is usually stable, it may still contain new 35 checks or backwards incompatible changes that break your build. By 36 using the master branch you agree to become a beta tester. 37 38 ## Tools 39 40 All of the following tools can be found in the cmd/ directory. Each 41 tool is accompanied by its own README, describing it in more detail. 42 43 | Tool | Description | 44 |----------------------------------------------------|-------------------------------------------------------------------------| 45 | [keyify](cmd/keyify/) | Transforms an unkeyed struct literal into a keyed one. | 46 | [staticcheck](cmd/staticcheck/) | Go static analysis, detecting bugs, performance issues, and much more. | 47 | [structlayout](cmd/structlayout/) | Displays the layout (field sizes and padding) of structs. | 48 | [structlayout-optimize](cmd/structlayout-optimize) | Reorders struct fields to minimize the amount of padding. | 49 | [structlayout-pretty](cmd/structlayout-pretty) | Formats the output of structlayout with ASCII art. | 50 51 ## Libraries 52 53 In addition to the aforementioned tools, this repository contains the 54 libraries necessary to implement these tools. 55 56 Unless otherwise noted, none of these libraries have stable APIs. 57 Their main purpose is to aid the implementation of the tools. 58 You'll have to expect semiregular backwards-incompatible changes if you decide to use these libraries. 59 60 ## System requirements 61 62 Staticcheck can be compiled and run with the latest release of Go. It can analyze code targeting any version of Go upto 63 the latest release.