Linting

Linting

8Vast analyzes your code for errors, performance issues, security risks, and quality problems. It works on any language — Rust, TypeScript, Python, Go, Java, C, C++, and more.

8v lint .

No extra install. No plugins. Built into the 8v CLI. It also detects your existing tools (Clippy, ESLint, Ruff, mypy) and merges everything into one report.

Supported languages

LanguageBuilt-in rulesExternal tools
Rust156 rules (deep coverage)Clippy, cargo check
TypeScript3 rules + metricstsc, ESLint
PythonMetricsRuff, mypy
Go, Java, C, C++, ...Metrics

For any language, you can also write custom rules in YAML to catch patterns specific to your project. See Custom Rules.

What it catches

  • Error handling — swallowed errors, broken error chains, wrong log levels. No other linter catches these.
  • Safety — panics in libraries, undocumented unsafe, blocking in async
  • Performance — clones in loops, large futures, blocking I/O in async
  • Security — SQL injection, command injection, hardcoded secrets
  • Metrics — function length, nesting depth, cognitive complexity (configurable thresholds)
  • Test quality — missing assertions, trivial assertions, ignored tests without reason

How to write rules

ApproachWhen to useRequires
YAMLPattern matching, metrics, most custom rulesNo code — just a YAML file
Built-inCommon patterns — ship with 8VastNothing — already there
Native RustComplex logic, cross-file analysisRust code

Most teams use YAML rules. They work on any language and need no code — describe the pattern you want to catch, and 8Vast finds it.

How it compares

8VastSemgrepast-grepClippy
LanguagesAny30+AnyRust only
Custom rulesYAML + RustYAMLYAMLCompiler plugin
Error handling rulesBuilt-inWrite your ownWrite your ownPartial
Metrics enforcementBuilt-inNoNoNo
External tool integrationYesNoNoN/A
Requires installNo (part of 8v)YesYesYes

For a detailed comparison, see vast-lint vs Semgrep vs ast-grep.

Docs