parlov docs

Crate Reference

Per-crate API documentation for the parlov workspace — public types, traits, internal architecture, and extension points.

Implemented

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-core

parlov-core is the dependency root. All workspace crates depend on it. It depends on nothing in the workspace.

Crate Summary

CrateVersionRoleFilesLines
parlov-core0.5.0Shared types, error types, oracle class definitions7977
parlov-probe0.2.1HTTP probe engine: execution, timing, TLS2164
parlov-analysis0.5.0Analysis engine: signal detection, scoring, classification162,781
parlov-output0.6.0Output formatters: terminal table, JSON, SARIF v2.1.041,047
parlov-elicit0.3.0Elicitation engine: strategy selection, probe plan generation428,578
parlov0.6.0Binary crate: CLI entry point, subcommand dispatch, demo server91,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

On this page