revive

What revive is
revive is a free, self-hosted linter for Go and a drop-in replacement for golint. It checks more than 100 rules involving style, naming, complexity, errors, and Go idioms. A TOML configuration file lets users enable or disable rules and set each rule’s severity and exit code. Comments can suppress one rule or the entire linter for a file or selected line range. Output can be formatted as friendly, stylish, plain, Unix, JSON, NDJSON, checkstyle, or SARIF. Teams can add custom rules or formatters, and developers can embed revive as a linting library in another library or command-line application. Documentation covers Homebrew, Go source, Docker, and precompiled-binary installation, plus VS Code, GoLand, Vim, GitHub Actions, golangci-lint, and MegaLinter integrations. The project reports twice golint’s speed with the same rules and over six times the speed when permitted type checking is disabled. Revive is MIT licensed.
Who it suits
revive is intended for Go codebases, including projects using editor or CI integrations. It suits teams that need configurable rules, machine-readable output, or a linter library.
What it does well
- 100+ rules for Go code quality
- TOML settings control severity and exit codes
- Multiple terminal and CI output formats
- Custom rules and formatters supported
- Free, self-hosted, MIT licensed
What to know first
- Type-checking rules depend on GOROOT and GOPATH
- Some setups may produce unexpected type-checking behavior
- Supports one language: Go
Verdict
revive provides broad, configurable Go linting with suppression comments, extensibility, and many output formats. Its documented speed claims and CI integrations are useful, but type-checking rules have environment dependencies.
Facts from revive's own pages
- CI integrations
- The documentation describes a GitHub Action with annotation support and use through golangci-lint and MegaLinter. · revive.run, 9 Oct 2026
- Configuration
- Rules can be enabled, disabled, and configured in a TOML file, including per-rule severity and exit codes. · revive.run, 9 Oct 2026
- Custom extensions
- Users can extend Revive with custom rules or formatters, or use it as a linting library. · revive.run, 9 Oct 2026
- Editor and CI integrations
- The documentation describes use with VSCode, GoLand, vim, GitHub Actions, golangci-lint, and MegaLinter. · revive.run, 9 Oct 2026
- Editor support
- The documentation describes editor support for VS Code, GoLand, and Vim. · revive.run, 9 Oct 2026
- Formatters
- Built-in output formatters include friendly, stylish, plain, unix, JSON, NDJSON, checkstyle, and SARIF. · revive.run, 9 Oct 2026
- Inline control
- Comments can disable a rule or the whole linter for a file or range of lines. · revive.run, 9 Oct 2026
- Inline controls
- Comments can disable a rule or the whole linter for a file or a range of lines. · revive.run, 9 Oct 2026
- Installation
- The documentation describes installation with Homebrew, from Go source, with Docker, or as a precompiled binary. · revive.run, 9 Oct 2026
- Library use
- Revive can be used as a library in another library or command-line application. · revive.run, 9 Oct 2026
- License
- The repository lists the project license as MIT. · github.com, 9 Oct 2026
- Output formats
- Built-in formatters include friendly, stylish, plain, unix, JSON, NDJSON, checkstyle, and SARIF. · revive.run, 9 Oct 2026
- Purpose
- Revive is a fast, configurable, extensible linter for Go and a drop-in replacement for golint. · revive.run, 9 Oct 2026
- Rule coverage
- Its 100+ rules cover style and naming, complexity, errors, and Go idioms. · revive.run, 9 Oct 2026
- Rules
- It offers more than 100 rules covering style and naming, complexity, errors, and Go idioms. · revive.run, 9 Oct 2026
- Security and compliance
- The opened official pages do not state security certifications or compliance claims. · revive.run, 9 Oct 2026
- Speed
- The documentation says Revive is 2× faster than golint when running the same rules, and over 6× faster when type checking is disabled where rules allow it. · revive.run, 9 Oct 2026
- Type checking limitation
- Rules that use type checking depend on GOROOT and GOPATH, and the documentation warns they may not work as expected in some build or GitHub Actions setups. · revive.run, 9 Oct 2026
- What it does
- Revive is a fast, configurable, extensible linter for Go. · revive.run, 9 Oct 2026
- Who it is for
- The project is intended for Go codebases and documents use in projects including TiDB, Grafana, etcd, and Gitea. · revive.run, 9 Oct 2026
Where revive stands on Freedom251
- Linters#32 of 33
