Crate Reference
Per-crate API documentation for the parlov workspace — public types, traits, internal architecture, and extension points.
Per-crate API documentation for the parlov workspace. Each page covers the public API surface (types, traits, and functions available to downstream consumers) and the internal architecture (module layout, decision rationale, and extension points for contributors).
Workspace Dependency Graph
parlov (bin)
├── parlov-core
├── parlov-probe
│ └── parlov-core
├── parlov-analysis
│ └── parlov-core
├── parlov-elicit
│ └── parlov-core
└── parlov-output
└── parlov-coreparlov-core is the dependency root. All workspace crates depend on it. It depends on nothing in the workspace.
Crate Summary
| Crate | Version | Role | Files | Lines |
|---|---|---|---|---|
parlov-core | 0.5.0 | Shared types, error types, oracle class definitions | 7 | 977 |
parlov-probe | 0.2.1 | HTTP probe engine: execution, timing, TLS | 2 | 164 |
parlov-analysis | 0.5.0 | Analysis engine: signal detection, scoring, classification | 16 | 2,781 |
parlov-output | 0.6.0 | Output formatters: terminal table, JSON, SARIF v2.1.0 | 4 | 1,047 |
parlov-elicit | 0.3.0 | Elicitation engine: strategy selection, probe plan generation | 42 | 8,578 |
parlov | 0.6.0 | Binary crate: CLI entry point, subcommand dispatch, demo server | 9 | 1,300 |
Design Principles
Compile-time isolation. The crate boundary between parlov-probe and parlov-analysis is a compile-time isolation boundary. Changing a statistical threshold in analysis does not recompile the TLS stack. Changing TLS probe construction does not recompile the scoring engine.
Pure computation where possible. parlov-core, parlov-analysis, parlov-elicit, and parlov-output are pure synchronous computation — no I/O, no async, no network stack. Only parlov-probe and the parlov binary carry async/network dependencies.
Types flow down, behavior flows up. parlov-core defines the shared vocabulary (types, enums, errors). The library crates implement behavior against those types. The binary crate composes them into the CLI pipeline.
Crates
parlov-core
Shared vocabulary crate — request/response primitives, oracle domain types, technique metadata, signal types, scoring types, and the OracleResult.
parlov-probe
HTTP execution layer — the Probe trait, HttpProbe implementation, timing capture, and extension points for custom clients.
parlov-analysis
Analysis engine — the Analyzer trait, ExistenceAnalyzer, three-layer scoring pipeline, signal extractors, and family-based deduplication.
parlov-elicit
Elicitation engine — ScanContext, the Strategy trait, 32 strategy implementations across 3 detection vectors, and probe plan generation.
parlov-output
Output formatting layer — terminal table rendering, structured JSON with DTO layer, and SARIF v2.1.0 document generation.
parlov (binary)
CLI binary crate — argument parsing, subcommand dispatch, adaptive probe scheduling, vector filtering, and the demo server.