Skip to main content

xbp_analysis/
lib.rs

1//! XBP language-agnostic static analysis (Aspirator-inspired).
2//!
3//! Hexagonal layout:
4//! - [`domain`] — pure model (findings, rules, abstract error concepts)
5//! - [`ports`] — inbound/outbound traits only
6//! - [`application`] — orchestration + language-independent rules
7//! - [`adapters`] — filesystem, config, output formats, cache, fixes
8//! - [`languages`] — per-language adapters (Rust first)
9//!
10//! The domain does not depend on rustc, tree-sitter, the filesystem, clap, or SARIF/JSON crates.
11
12#![allow(clippy::module_inception)]
13
14pub mod adapters;
15pub mod application;
16pub mod domain;
17pub mod languages;
18pub mod ports;
19
20pub use application::engine::{AnalysisEngine, DefaultAnalysisService};
21pub use domain::report::AnalysisReport;
22pub use domain::request::AnalysisRequest;
23pub use domain::types::*;
24pub use ports::inbound::AnalysisService;