1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
[]
= "bathy-interpret"
= "The pure interpretation layer for bathy: turns recorded probe bytes into structured, evidence-backed claims."
= true
= true
# 1.88 MSRV tier: this crate depends on nothing that needs more than the
# workspace floor (see the MSRV comment on the workspace `Cargo.toml`).
# `bathy-types` and `regex` (its only two dependencies -- see the module doc
# comment on `src/lib.rs` for why that pair, and no others, is load-bearing)
# both build fine at 1.88. CI's `msrv` job (`.github/workflows/ci.yml`) now
# checks this crate alongside `bathy-types`/`bathy-scope`/`bathy-evidence`/
# `bathy-plan`/`bathy-probe`/`xtask`, not the higher `msrv-bathy-store` tier
# `bathy-store`/`bathy-engine` need for `rusqlite`'s `bundled` feature.
= true
= true
= true
[]
= { = true }
# The one dependency this crate needs to interpret text-shaped protocol
# banners (HTTP `Server:` headers, SSH identification strings, SMTP
# greetings) without hand-rolling ad hoc string scanning for each one.
# Default features (`std`, `perf`, `unicode`) are all pure computation over
# in-memory byte slices -- no I/O, no threads spawned, nothing that could
# compromise the purity this crate exists to guarantee (see `src/lib.rs`).
= { = true }
[]
# M7 Task 3 (AC-7.15): the criterion micro-benchmarks. `default-features =
# false` drops `plotters` and `rayon` -- this project publishes numbers, not
# HTML reports, and every crate admitted to the graph has to clear
# `cargo deny`'s licence check. `cargo_bench_support` is what lets
# `cargo bench` drive it at all.
= { = true }
# M4 Task 4 (`tests/replay.rs`): fixtures on disk store request/response
# bytes as base64 (the brief's own fixture shape), decoded once at load
# time. Dev-only, like everything else below -- see the note on `insta`.
= "0.23.0"
# M4 Task 4: snapshot-compares `interpret`'s output against a committed
# corpus of recorded captures (`testdata/captures/`). Dev-only:
# `cargo tree -p bathy-interpret --edges normal` (the purity check AC-4.10
# requires) does not walk dev-dependencies at all, so this crate's headline
# claim -- "depends on exactly two crates, `bathy-types` and `regex`" (see
# `src/lib.rs`'s module doc comment) -- is unaffected by anything in this
# section.
= { = "1.48.0", = ["json"] }
# Property-testing `interpret`'s span-validity and determinism guarantees
# (AC-4.14, AC-4.15) over arbitrary byte inputs -- see `src/interpret.rs`'s
# test module.
= { = true }
# M4 Task 4: `ProbeCapture` itself is deliberately not `Serialize`/
# `Deserialize` (see `bathy_types::capture`'s own doc comment -- nothing in
# M4 puts it on the wire, so adding derives ungoverned by `xtask
# check-schemas` would be a promise nobody is checking). `tests/replay.rs`
# therefore defines its own small `Deserialize`-only fixture shape, local to
# the test binary, and constructs a real `ProbeCapture` from it by hand --
# these two crates are what that deserialization needs.
= { = true, = ["derive"] }
= true
[[]]
= "interpret"
= false