Revive is a linter for Go that serves as a drop-in replacement for golint with significantly improved performance and configurability.
Revive addresses the limitations of golint by introducing a configuration-driven approach to linting. Rather than enforcing a fixed set of rules, it allows developers to selectively enable or disable rules through a TOML configuration file and customize individual rule behavior. The tool achieves substantial performance gains by making type checking optional; when type-checking rules are disabled, revive runs over six times faster than golint while maintaining the same rule coverage. It also provides fine-grained control over linting scope through comment directives that can disable rules for specific lines or file ranges, extending beyond golint's support for generated files only.
Teams should adopt revive if they want flexibility in their linting standards without sacrificing speed. It suits projects that need stricter code review processes or want to enforce custom coding standards through extensible rules. The tool is particularly valuable for teams already using golint who seek faster execution and more granular configuration without switching to a completely different linter. Revive integrates with common Go development workflows, including text editors, GitHub Actions, and linter aggregators like golangci-lint.
The project maintains steady development activity with regular updates addressing bug fixes and feature enhancements. The codebase demonstrates responsiveness to user-reported issues and pull requests. Development follows a structured approach with clear documentation of available rules, formatters, and extensibility patterns, enabling community contributions of custom rules and formatters. The project provides multiple output formatters including JSON, SARIF, and Checkstyle formats, supporting integration into various development and CI/CD environments.