Each layer owns a clear contract. Layers communicate through shared types (TestCase, ExecutionResult, CoverageFeedback) and trait objects (plugins), not through ad-hoc globals.

Companion

Architecture Overview for the stack diagram; this page expands per-layer modules and responsibilities.

1. Input construction — src/input/

ModuleRole
model.rsProtocolModel, field/message/sequence specs; built-ins + JSON (json-model); offline infer_model_from_bytes
mutator.rsHierarchical mutator; energy feedback; template splice
integrity.rsSemantic length/checksum + protocol raw heuristics
corpus.rsSeed load, queue, scheduling

Output: structurally prepared TestCase instances. Integrity runs post-mutation, pre-encrypt. See Protocol Models, Mutation, Integrity Repair.

2. State + coverage — src/state/, src/coverage/

ModuleRole
state/tracker.rsResponse-derived state hash / transitions
state/predictor.rsAdaptive transition prediction
coverage/provider.rsCoverageProvider trait, CoverageFeedback, MAP_SIZE 64 KiB
coverage/null|map|software|shmConcrete backends; default null

Default coverage is off. Grey-box edges feed oracle and scheduling when -C map|software is set. See Coverage.

3. Execution — src/execution/

ModuleRole
engine.rsCampaign loop, workers, NXS event wiring, snapshot ownership
worker.rsPer-worker mutate → prepare → send → observe
connector.rsTCP/UDP connect, send/recv, timeouts
reuse.rsIntelligent connection reuse
process_monitor.rsLocal process lifecycle / crash signals
snapshot/null | process | criu backends
desocket/ProtocolReset (FTP/SMTP/MQTT/HTTP/binary)
libafl_*.rsOptional LibAFL path (--features libafl, -L)

See Snapshot & Desocket, LibAFL Path.

4. Monitoring + NXS — src/monitor/, src/nxs/, nxs/

ModuleRole
monitor/oracle.rsBase oracle trait + classic signals
plugin/oracle.rsProduction suites (differential, sanitizer, diffsan, expanded)
monitor/minimizer.rsCrash/hang minimisation
monitor/logger.rsStructured campaign logging
nxs/meta|resolve|spawn|reaper|rateMeta write, path resolve, non-blocking spawn, exit reaping, rate limits
nxs/ (tree)Official existence binaries + CONTRACT

See Oracles, NXS Overview.

Cross-cutting plugins — src/plugin/

  • Protocol — model binding
  • Integrity — repair plugins
  • Encryptor — post-repair wire transforms
  • Oracle — interestingness
  • Pipeline — composed plugin chains when needed

Supporting

  • src/common/Config, types, errors, utils
  • src/platform/ — Linux/Windows specifics
  • src/scripting/ — Python/RPC bridges
  • src/main.rs — CLI parse, offline infer, engine dispatch