anteater
Anteater is a static analyzer for Dart that provides SSA-based data flow analysis, Datalog-based reasoning, code metrics, and configurable lint rules.
0.4.0
51 downloads/mo
#4253 most downloaded on pub.dev
brody-0125/anteater
What this package is like to depend on
Last release 7 months ago
03 Jan 2026
Too new to tell
only 1 release windows
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
5 releases · first in 2025
5 releases in the last 12 months
see the full history below
Release timeline
5 releases · Dec 2025 to Jan 2026
2026
Releases
latest 5-
0.4.003 Jan 2026Release notes
Open source →Added
- Parallel Analysis API: Memory-efficient concurrent file analysis for large codebases
ParallelAnalyzerclass with configurable concurrency and chunked processingParallelAnalysisConfigfor tuningmaxConcurrency(default: 4) andchunkSize(default: 50)FileAnalysisResultfor per-file analysis results with error handlingAnalysisProgressCallbackfor real-time progress trackinganalyzeWithProgress()method with progress callback supportanalyzeStream()for sequential streaming resultsanalyzeParallelStream()for parallel streaming with chunked processing- Automatic exclusion of generated files (
.g.dart,.freezed.dart)
- MetricsAggregator Enhancement:
addPrecomputedResult()method for parallel aggregation without AST retention - Library Documentation: Added parallel analysis usage examples to library doc comment
Changed
- Library Exports: Exported
ParallelAnalyzer,ParallelAnalysisConfig,FileAnalysisResult,AnalysisProgressCallbackfrom main library
- Parallel Analysis API: Memory-efficient concurrent file analysis for large codebases
-
0.3.230 Dec 2025Release notes
Open source →What's Changed
- chore: update ignores by @brody-0125 in #3
- chore: update ignores (#3) by @brody-0125 in #4
- refactor : ssa versioning and flow facts by @brody-0125 in #5
- refactor : ssa versioning and flow facts (#5) by @brody-0125 in #6
Full Changelog: 0.3.0...0.3.2
Release notes
Open source →Changed
- SDK Version: Updated minimum SDK constraint from
^3.10.0to^3.10.7to fix pub.dev dependency resolution failure
Fixed
- SSA Builder: Added result field versioning for
CallInstruction,LoadFieldInstruction,LoadIndexInstruction,NullCheckInstruction,CastInstruction,TypeCheckInstruction - SSA Builder: Implemented trivial phi use-site replacement with substitution chain resolution
- SSA Builder: Added
AwaitInstructionresult versioning - Datalog Facts: Preserved SSA versions in
_getValueVarIdusingvariable.toString() - Datalog Facts: Added flow-sensitive
*Atfacts (AssignAt,AllocAt,CallAt,LoadFieldAt,StoreFieldAt,PhiAt) with block IDs - Abstract Interpreter: Added missing transfer functions for
LoadField,Call,Await,LoadIndex,NullCheck,Cast,TypeCheck - Abstract Interpreter: Fixed unreachable predecessor filtering in phi transfer function
-
0.3.129 Dec 2025Release notes
Open source →Changed
- Halstead Metrics: Renamed
N1/N2fields tooperatorTotal/operandTotalfor Dart naming convention compliance - SDK Version: Updated minimum SDK constraint from
^3.5.0to^3.10.0fordart_bert_tokenizercompatibility - Async I/O: Converted async file existence checks to sync versions for better performance
Fixed
- Library Documentation: Added
library;directive to fix dangling doc comment warning - Doc Comments: Escaped angle brackets in documentation to prevent unintended HTML interpretation
- String Interpolation: Fixed string concatenation to use interpolation
- Const Usage: Applied
constconstructors and declarations throughout test files - Dynamic Calls: Fixed avoid_dynamic_calls warnings in server tests
- Unnecessary Import: Removed redundant import in metrics_test.dart
- Constructor Ordering: Moved constructors before field declarations per
sort_constructors_firstlint rule
- Halstead Metrics: Renamed
-
0.3.028 Dec 2025Release notes
Open source →What's Changed
- feature : support technical debt cost model and neural analysis by @brody-0125 in #1
- feature : support technical debt cost model and neural analysis (#1) by @brody-0125 in #2
Full Changelog: 0.2.0...0.3.0
Release notes
Open source →Added
- Neural Analysis Setup: Semantic clone detection using ONNX Runtime
- Pre-trained nomic-embed-text model (~522MB) for 768-dimensional embeddings
- WordPiece tokenization via
dart_bert_tokenizer - Model file search order:
--modeloption →./model/→~/.anteater/ - Installation instructions for ONNX Runtime (
brew install onnxruntime)
- CLI Command:
anteater clones --path <path>for semantic clone detection- Detects semantically similar code (same functionality, different syntax)
- Configurable similarity threshold (
--threshold) - Custom model/vocab paths (
--model,--vocab) - Fallback to
~/.anteater/for global installation - Output formats: text, json
- Technical Debt Cost Model: Comprehensive debt tracking and cost estimation
DebtItemandDebtTypemodels with 10 debt types (TODO, FIXME, ignore, as dynamic, etc.)DebtSeveritywith configurable cost multipliers (critical: 4x, high: 2x, medium: 1x, low: 0.5x)DebtDetectorfor detecting debt from comments, casts, annotations, and metricsDebtCostCalculatorfor item and total cost calculationDebtReportwith Markdown, JSON, and console output formatsDebtAggregatorfor project-level aggregation and hotspot analysisDebtTrendfor tracking debt changes over time
- CLI Command:
anteater debt --path <path>for technical debt analysis- Output formats: text, json, markdown
- Threshold-based CI gate with
--fail-on-threshold - Customizable threshold with
--thresholdflag
- Debt Configuration: YAML configuration for debt costs and thresholds
- Per-type cost configuration
- Metrics-based debt thresholds (MI, complexity, LOC)
- Configurable unit of measurement (hours, story points)
-
0.2.028 Dec 2025Release notes
Open source →Added
- Style Consistency Rules: 10 production-ready lint rules
- Safety rules:
avoid-dynamic,avoid-global-state,avoid-late-keyword,no-empty-block,no-equal-then-else - Quality rules:
prefer-first-last,prefer-async-await,avoid-unnecessary-cast,prefer-trailing-comma,binary-expression-order
- Safety rules:
- Rule Infrastructure
StyleRuleabstract base class for custom rulesRuleRunnerfor coordinated rule executionRuleRegistryfor rule registration and configurationRuleConfigfor YAML-based configuration parsingAnalysisResultandAnalysisResultBuilderfor multi-file results
- Rule Configuration
- Per-rule severity override
- Per-rule file exclusion patterns
- Global exclusion patterns
- CLI Command:
anteater rules --path <path>for running style rules - Performance Optimizations
- RegExp pattern caching for glob matching
- Lazy computed properties in
AnalysisResult - Unmodifiable collections in
RuleSettings - Const empty list returns
Changed
- Improved error handling: rule execution failures reported as warnings instead of silent failures
Release notes
Open source →Added
- Style Consistency Rules: 10 production-ready lint rules
- Safety rules:
avoid-dynamic,avoid-global-state,avoid-late-keyword,no-empty-block,no-equal-then-else - Quality rules:
prefer-first-last,prefer-async-await,avoid-unnecessary-cast,prefer-trailing-comma,binary-expression-order
- Safety rules:
- Rule Infrastructure
StyleRuleabstract base class for custom rulesRuleRunnerfor coordinated rule executionRuleRegistryfor rule registration and configurationRuleConfigfor YAML-based configuration parsingAnalysisResultandAnalysisResultBuilderfor multi-file results
- Rule Configuration
- Per-rule severity override
- Per-rule file exclusion patterns
- Global exclusion patterns
- CLI Command:
anteater analyze -p <path>for running style rules analysis - Performance Optimizations
- RegExp pattern caching for glob matching
- Lazy computed properties in
AnalysisResult - Unmodifiable collections in
RuleSettings - Const empty list returns
Changed
- Improved error handling: rule execution failures reported as warnings instead of silent failures
- Style Consistency Rules: 10 production-ready lint rules