Expand description
XBP language-agnostic static analysis (Aspirator-inspired).
Hexagonal layout:
domain— pure model (findings, rules, abstract error concepts)ports— inbound/outbound traits onlyapplication— orchestration + language-independent rulesadapters— filesystem, config, output formats, cache, fixeslanguages— per-language adapters (Rust first)
The domain does not depend on rustc, tree-sitter, the filesystem, clap, or SARIF/JSON crates.
Re-exports§
pub use application::engine::AnalysisEngine;pub use application::engine::DefaultAnalysisService;pub use domain::report::AnalysisReport;pub use domain::request::AnalysisRequest;pub use ports::inbound::AnalysisService;pub use domain::types::*;
Modules§
- adapters
- Outbound adapters (filesystem, config, output, cache, fix).
- application
- Application services and language-independent rules.
- domain
- Language-independent analysis domain.
- languages
- Language adapters. Add a module + register in
crate::application::engine::AdapterRegistry. - ports
- Inbound and outbound ports (hexagonal boundaries).