falcon vs dart analyze, DCM and custom_lint
How falcon compares with the other ways to lint Dart and Flutter code. falcon's numbers come from its own rule catalog and benchmarks; every other claim links to its public source. Same rules, cold analyzer cache: falcon 4.4–5.5× faster than dart analyze on 4 corpora. Same rules, warm analyzer cache: dart analyze was faster on cfug/dio, felangel/bloc and flame-engine/flame; falcon was faster on three flutter/packages plugin families (2.5×). DCL rules, cold analyzer cache: falcon 7.8–41× faster than Dart Code Linter on 3 corpora; no comparison on three flutter/packages plugin families: Dart Code Linter not measured (DCL 4.4.4 drops nested package contexts under a single root (analyzer_utils.dart getFilePaths); multiple roots analyze 259 files twice). DCL rules, warm analyzer cache: falcon 4.3–23× faster than Dart Code Linter on 3 corpora; no comparison on three flutter/packages plugin families: Dart Code Linter not measured (DCL 4.4.4 drops nested package contexts under a single root (analyzer_utils.dart getFilePaths); multiple roots analyze 259 files twice).
| Measurement | falcon | dart analyze | Dart Code Linter | DCM |
|---|---|---|---|---|
| Speed, Same rules, cold analyzer cache | Baseline | 4.9× slower than falcon (4 matched corpora) | not measured | not measured |
| Largest-process peak RSS range, Same rules, cold analyzer cache | 111–2149 MB | 156–4140 MB | not measured | not measured |
| Speed, Same rules, warm analyzer cache | Baseline | 1.0× slower than falcon (4 matched corpora) | not measured | not measured |
| Largest-process peak RSS range, Same rules, warm analyzer cache | 111–2092 MB | 124–2783 MB | not measured | not measured |
| Speed, DCL rules, cold analyzer cache | Baseline | not measured | 20× slower than falcon (3 matched corpora)three flutter/packages plugin families: not measured — DCL 4.4.4 drops nested package contexts under a single root (analyzer_utils.dart getFilePaths); multiple roots analyze 259 files twice. | 8.4× slower than falcon (2 matched corpora)flame-engine/flame: not measured — exceeds DCM Free 50k-line limit.three flutter/packages plugin families: not measured — exceeds DCM Free 50k-line limit. |
| Largest-process peak RSS range, DCL rules, cold analyzer cache | 103–1805 MB | not measured | 362–1996 MB | 122–204 MB |
| Speed, DCL rules, warm analyzer cache | Baseline | not measured | 11× slower than falcon (3 matched corpora)three flutter/packages plugin families: not measured — DCL 4.4.4 drops nested package contexts under a single root (analyzer_utils.dart getFilePaths); multiple roots analyze 259 files twice. | 4.9× slower than falcon (2 matched corpora)flame-engine/flame: not measured — exceeds DCM Free 50k-line limit.three flutter/packages plugin families: not measured — exceeds DCM Free 50k-line limit. |
| Largest-process peak RSS range, DCL rules, warm analyzer cache | 101–1793 MB | not measured | 278–1177 MB | 88–110 MB |
| Aspect | falcon | dart analyze | DCM | custom_lint |
|---|---|---|---|---|
| What it is | Standalone linter and language server, written in Rust | The Dart SDK's analysis command: the same static analysis as your IDE[1] | Commercial code-quality toolkit for Dart and Flutter[3] | A framework for writing your own lint rules as an analyzer plugin[5] |
| Lint rules | 512 built in, 215 on by default | The official Dart linter rules[2] | 100 on Free, 552 on Pro and above[3] | None built in; you write or install rule packages[6] |
| Price | Free, MIT | Free, part of the Dart SDK | Free for 1 seat up to 50k lines; Pro $16/month per seat; Teams $80/month for 5 seats[3] | Free, Apache-2.0[6] |
| Configuration | falcon.json with a JSON Schema | analysis_options.yaml[7] | A dcm entry in analysis_options.yaml[4] | analysis_options.yaml analyzer plugin[6] |
| Status | Actively developed, pre-1.0 | Maintained by the Dart team | Actively released[3] | Repository archived; the README recommends analysis_server_plugin instead[6] |
Each timing is a mean of repeated runs. Speed cells use the geometric mean of per-corpus time ratios against falcon on the matched corpora shown; RSS cells show the range across measured corpora only. DCL is the DCL-family speedup baseline in the per-corpus charts and methodology, which also list the machine, versions, and commands.
When to pick which
A dart analyze alternative for lint rules
Keep dart analyze for type checking and compile errors, and add falcon for linting. falcon implements 215 official Dart lints under their analyzer names, plus 297 rules the official set doesn't have. Its rules run in falcon's own process, never inside the Dart analysis server.
A DCM alternative
42 falcon rules are ports of Dart Code Metrics rules, alongside cross-file checks like unused-code and unused-files. falcon has no seat or line limits. DCM also offers code metrics, dashboards, and CLI fixes on its paid plans[3].
A custom_lint alternative
custom_lint is a framework for your own rules. If you used it for community rule packages, falcon's framework domains cover flutter, test, bloc, riverpod, provider, flutter_hooks, equatable out of the box.
Questions
Is falcon a replacement for dart analyze?
No, it complements it. dart analyze runs the full Dart analyzer, which type-checks your code and reports compile errors; keep it (or your IDE) for that. falcon runs lint rules, including the official Dart lints under their analyzer names, but it does not read // ignore: or // ignore_for_file: comments. It uses its own falcon-ignore comments, each with a required reason, so lint counts from the two tools can differ on the same code. How falcon suppressions work
Does falcon need the Dart SDK?
falcon parses Dart itself and never starts the Dart analyzer or analysis server. Rules that need SDK or package types need the Dart SDK installed and your dependencies resolved.
Can I migrate my analysis_options.yaml?
Yes. falcon migrate reads the analyzer linter.rules list, dart_code_linter.rules, and legacy custom_lint.rules from analysis_options.yaml and writes an equivalent falcon.json. Rules with no falcon equivalent are reported on stderr.
Is falcon free?
Yes. falcon and every one of its rules are MIT licensed, with no seat or lines-of-code limits.
Sources
Competitor details checked on October 21, 2026.