FREEDOM251

Freedom251 › Linters

revive

Free plan Self-hosted

Visit revive Alternatives

revive's own site

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

Look at these too