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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# Two-member workspace (ADR-025): this crate is the shipped backend
# composition; the protocol core is the root package (`alkgit`).
# The feature set is ADR-025's placement table.
#
# The package shape (the family package policy — the core's
# w5-release-readiness precedent; no `exclude` entries needed): the
# member directory contains only what ships — this manifest, `src/`,
# `tests/` (the working assembly rows are the crate's documentation of
# its own behavior), the crate-level `README.md`/`CHANGELOG.md`, and
# the family's LICENSE files (copied into the member — a workspace
# member packages only its own directory; the authoritative
# architecture docs live in the repo root's `docs/` and are referenced
# from the README). No scratch material, no task/process surface
# ships.
[]
= "alkgit-substrate"
= "0.1.0"
= "2021"
= "1.88"
= "MIT OR Apache-2.0"
= "https://git.alk.dev/alkdev/alkgit"
= "The shipped alkgit backend composition: the reactive alkstore + alkblobs backend implementing alkgit's backend seam — reactive halves, cached read provider, engine twins, migrations, GC wiring, and the LFS surface (ADR-019/025)"
= ["git", "protocol", "alkcall", "vcs", "database"]
= ["network-programming", "asynchronous", "database"]
[]
= ["sqlite", "lfs"]
# The sqlite co-tenant registry/ref twin (concrete tables + connections).
= ["dep:alkstore-sqlite", "dep:rusqlite"]
# The postgres twin.
= ["dep:alkstore-postgres", "dep:tokio-postgres", "alkblobs/postgres"]
# The LFS surface (ADR-022) — on by default (fail-safe default, ADR-022 §6).
# The enablement is the wave-6-flagged decision landing (the wave-6
# manifest read's record, below): the reactive halves consume nothing
# from alkblobs' alkcall surface, but the LFS byte paths (the batch's
# ops control plane and the put custody's mint/confirm verbs) do —
# `alkblobs/ops` plus the direct alkcall pin ride the feature. The pin
# is the same 0.10 family pin the core's manifest carries (the
# composition's wire-layer family pin).
= ["dep:alkcall", "alkblobs/ops"]
[]
# The seam contract: alkgit's backend traits + seam types. Inter-crate pin
# is by version; the path is the workspace-internal member (ADR-025 — the
# only path dependency either manifest carries). The version pin is
# version-enforced — never a bare sibling-checkout path.
= { = "..", = "0.1.0" }
# The reactive halves ride the unconditional deps (alkstore's core trait +
# alkblobs) — base, not a feature (ADR-025). Published-crates pins
# (backend.md §crate and feature model): alkstore family 0.1, alkblobs 0.2
# (resolving to 0.2.2, the review-013-fixed release — the version alkblobs'
# `ops` gate names). The wave-6 manifest read's record, resolved by the
# wave-9 manifest enablement: the reactive halves are alkstore machinery
# and consume nothing from alkblobs' alkcall surface — the `ops`
# enablement lands in wave 9 under the `lfs` feature, whose LFS byte
# paths (pre-keyed put / ranged fetch) ride alkblobs' marked-pub-put
# contract (alkblobs ADR-014); the batch/checking adapter answers over
# `blobs/stat` through the ops control plane (ADR-022 §2).
= "0.1"
= "0.2"
# The LFS surface's direct alkcall pin (`lfs` feature — the ops control
# plane's OperationContext/registry machinery the adapter builds; the
# same 0.10 family pin the core carries; alkblobs' `ops` gate resolves
# the same crate).
= { = "0.10", = true }
# The announce composition's payload `Value` (alkstore's trait
# signatures pin serde_json::Value — the trait-surface type the
# reactor serializes `RegistryEvent`/`MaintenanceJob` through). Same
# "1" pin as the core's manifest.
= "1"
= { = "1", = ["derive"] }
# Engine twins (alkblob-style features of this crate, ADR-025).
= { = "0.1", = true }
= { = "0.1", = true }
# The postgres twin's co-tenant connection driver — the same family
# pin alkstore-postgres carries (0.7); the twin's SQL and the stamp
# runner ride it directly (the engine re-exports nothing of it).
= { = "0.7", = true }
# The co-tenant connection surface (the migrations handle + the twins'
# concrete SQL ride rusqlite directly — the same pin alkstore-sqlite
# carries; `bundled` is inherited from the engine twin's enablement and
# declared here so the co-tenant handle stands alone in its feature).
= { = "0.40", = ["bundled"], = true }
# The packaging toolkit (pack generation/ingest pipelines, ADR-020 §2).
# gix-odb is deliberately absent — no on-disk odb engine is shipped
# (ADR-019); objects flow through alkblobs. The feature set matches the
# core crate's pipeline dev-dependency pin (ADR-004's composition).
= { = "0.76", = false, = [
"generate",
"parallel",
"sha1",
"streaming-input",
] }
# The object model (kinds, loose headers, refs) — the odb front and the
# pack pipelines' shared vocabulary. The gix-fsck pin stays the wave-8
# ingestion pre-commitment (unmoved; review-004 R-1's posture).
= { = "0.66", = ["sha1"] }
= { = "0.27", = ["sha1"] }
# ADR-004's commit-ancestry walk (the two-stage closure's stage two).
= { = "0.63", = ["sha1"] }
# The pack pipeline's chunked-entry stage (InOrderIter — ADR-004).
= { = "0.50", = false, = ["parallel"] }
# The pipeline's progress plumbing (Discard) + compression level type.
= { = "0.5", = ["progress"] }
= { = "0.3" }
# The through-store shape's request digest + mid-flight slice-digest
# re-derivation (sha2 — the same family pin alkblobs carries).
= "0.10"
# Ref-name validation at the refs table layer (substrate.md §refs:
# ADR-013 §7's `gix_validate::reference` usage moves from gix-ref files
# to the table layer — the `gix-ref` pin the wave-6 manifest read killed;
# refs are rows, ADR-019 §2). Same version family as the core's pin.
= "0.13"
# The gix Find trait signatures' error family (find_traits return
# gix_error::Result; the odb front's impls name the type).
= "0.5"
# The refs rows' oids ([`RefLine`] carries gix oids) — the core's
# gix-hash family pin (same version, sha1 default per OQ-05).
= { = "0.28", = ["sha1"] }
= "0.1"
# `rt-multi-thread` is the block_in_place posture's floor (the odb
# front's async-context bridge half and the eventual liveness source).
= { = "1", = false, = ["rt", "rt-multi-thread", "sync", "io-util", "macros", "time", "fs"] }
= "0.12"
# No `tracing` dependency — the family's no-log-dep precedent (alkblobs
# review 001 S-4, the core's review-004 D-1): none of the stub-dead crate
# logs, and a future telemetry pass would be a deliberate feature.
= "2"
[]
# The mem engine — the reactor suite's base engine column (the
# engine-generic reactive composition's completeness leg; the sqlite
# column rides the `sqlite` feature's own engine dependency).
= "0.1"
# The pipeline toolkit is a real dependency now (the wave-7 packgen
# promotion — this file's [dependencies]); the odb.rs generation smoke
# rides those features directly.
# The odb front's git-interop vectors (git's loose-object oids) decode
# through lower-case-hex; the test suite also drives a real `git
# hash-object` when one is installed.
= "0.4"
= { = "1", = ["full", "test-util", "macros"] }
# The rider rows compose the core crate's published serving machines
# (`serve_duplex` / `serve_stateless_post`): the entry tuple's identity
# type rides alkcall (the same pin the core carries), the stateless
# body's `BodyReader` reads a futures stream of `bytes`.
= "0.10"
= "0.3"
= "1"