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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
[]
# `macrame` is taken on crates.io — an unrelated wasm-bindgen macro crate at
# 0.0.1 — so the *package* is published as `macrame-db`. The `[lib]` name below
# keeps the import path `use macrame::…` unchanged, so this is a registry name
# and not a rename of the crate anyone writes against.
= "macrame-db"
= "0.6.0"
= "2021"
# Measured, not declared: `cargo +1.88.0 check --all-features --all-targets`
# passes and 1.85 does not.
#
# **This floor is not ours.** Macrame's own code needs 1.73 (`div_ceil`; 1.70
# for `Option::is_some_and`). The binding constraint is `home@0.5.12` at 1.88,
# reached through `libsql-ffi`'s *build*-dependency on bindgen -> which -> home
# — and a build-dependency binds consumers too, because libsql-ffi compiles the
# amalgamation on every downstream build. Lowering it means pinning that chain
# (`cargo update home --precise …`), not changing anything here.
= "1.88"
= ["opticsWolf"]
= "A Bitemporal Graph Ledger on libSQL · Embedded knowledge database"
# crates.io only *warns* locally when these are missing — `cargo publish
# --dry-run` passes without them — but the registry API rejects an upload with
# no license, so the first real publish would fail after a full verify build.
= "MIT OR Apache-2.0"
= "https://github.com/opticsWolf/Macrame"
= "README.md"
= ["bitemporal", "graph", "libsql", "ledger", "database"]
= ["database", "database-implementations", "data-structures"]
# The import path stays `macrame`, independent of the registry name above.
# Without this a dependent would have to write `use macrame_db::…`, and every
# rustdoc link, doc-test and example in the crate says `macrame`.
[]
= "macrame"
= "src/lib.rs"
[]
= "0.9.30"
= { = "1", = ["full"] }
= { = "1.0", = ["derive"] }
= "1.0"
= "1.3"
= "0.13"
= "1.0"
= "0.1"
= "1.1"
[]
= "3.8"
= "0.4"
= "1"
# §9's harness (D-055). `default-features = false` drops the plotting and HTML
# report stack, which is most of criterion's dependency tree and none of the
# measurement — the numbers come out on stdout and into `target/criterion` either
# way.
= { = "0.5", = false, = [
"async_tokio",
"cargo_bench_support",
] }
[]
= []
# The generated-history test binaries. Off by default, as the second half of
# the R15 mitigation — the first half is `RUST_TEST_THREADS = "1"` in
# .cargo/config.toml, which alone takes the rest of the suite to 0 bad runs in
# 30. These do not follow it there: a property case needs its own database, and
# `doctrine_property_tests` still faults ~3/25 serialised. A suite that fails
# for reasons unrelated to the code under test trains people to ignore red, so
# the residue is quarantined rather than tolerated.
#
# Quarantined, not silenced. These are the tests that found D-035, they run as
# their own step, and `.proptest-regressions` replays every failure ever found
# before a single new case is generated.
#
# cargo test --features property-tests
= []
# Write-actor latency counters (T1.4, D-079). Off by default.
#
# Off is the right default because the crate's contract is a latency bound and
# the instrumentation is not free of *risk* even where it is free of cost — but
# it is close to free of cost: with the feature off `HoldTimer` reads no clock
# and `ActorMetrics` is a ZST whose methods are empty, so the actor loop compiles
# to what it compiled to before. See `src/metrics.rs` for why that is arranged as
# two impls of one type rather than `#[cfg]` inside the loop.
#
# cargo test --features metrics
= []
[[]]
= "actor_metrics_tests"
= ["metrics"]
# T1.1's evidence. Needs `metrics` because the question is what the *actor* held
# for, and wall time on the caller's side includes queueing.
[[]]
= "archive_window_diag"
= ["metrics"]
# T1.3's evidence, for the same reason.
[[]]
= "bulk_atomic_diag"
= ["metrics"]
# T3.4's evidence: the hold must not move while the total does.
[[]]
= "pipeline_diag"
= ["metrics"]
# T1.2's evidence. The question is the longest single *turn*, which only the
# actor's own counters can answer.
[[]]
= "shadow_rebuild_diag"
= ["metrics"]
[[]]
= "integrity_property_tests"
= ["property-tests"]
[[]]
= "doctrine_property_tests"
= ["property-tests"]
[[]]
= "graph_property_tests"
= ["property-tests"]
# §9's budgets, measured (D-055). Not a CI gate — see the note at the top of the
# file for why absolute durations on arbitrary hardware are the wrong shape, and
# what criterion baselines do instead.
[[]]
= "budgets"
= false