docs(architecture): ADR-017 — consumer half, GitSession as typed client (review 001 A-5)
- new ADR-017: GitSession is a real typed client in v1 (ls_refs/fetch/ push), grounded in the two deployment use cases — the p2p replicator is the named downstream and needs the client protocol layer; the thin-wrapper reading is superseded - fetch client reuses gix-protocol (async-client) over a custom alkcall gix_transport::client::Transport impl (handshake writes the ADR-016 request line on the direct path; the channels open-op params carry it otherwise); push hand-rolled to ADR-013's shapes (gitoxide has no send-pack client) - storage-agnostic: packs stream both ways to caller-owned consumers; no in-session credentials (alkcall transport authenticates); client sessions carry ADR-009 Limits (client is also internet-facing) - manifest: gix-protocol/gix-transport gain async-client features (verified against published tree, MSRV 1.88) - amend ADR-010 (consumer-half bullet) and ADR-012 §4 (the deferred gix-protocol call — resolved; rider superseded); backend/transport/ overview/doors wording; review 001 A-5 marked resolved verification: cargo check (default, --all-features, --no-default-features, --features sha256), cargo +1.88 check, cargo test, clippy -D warnings, fmt --check — clean across the matrix
This commit is contained in:
1 parent
41b0894740
commit
82653c31b6
10 files changed
+223
-20
No files matched your search
+7
-2
@@ -50,8 +50,13 @@ gix-object = { version = "0.64", optional = true, features = ["sha1"] }
|
||||
gix-fsck = { version = "0.25", optional = true, features = ["sha1"] }
|
||||
gix-hash = { version = "0.26", features = ["sha1"] }
|
||||
gix-packetline = "0.22"
|
||||
gix-protocol = "0.65"
|
||||
gix-transport = "0.59"
|
||||
# Consumer half (ADR-017): gix-protocol with its async client (handshake +
|
||||
# ls-refs + fetch machinery) driven by a custom alkcall Transport impl
|
||||
# (gix-transport's client::Transport is the transport-agnostic seam);
|
||||
# the push client is hand-rolled to ADR-013's shapes (gitoxide has no
|
||||
# send-pack client).
|
||||
gix-protocol = { version = "0.65", features = ["async-client"] }
|
||||
gix-transport = { version = "0.59", features = ["async-client"] }
|
||||
tokio = { version = "1", default-features = false, features = ["rt", "sync", "io-util", "macros", "time"] }
|
||||
tokio-util = { version = "0.7", features = ["compat"] }
|
||||
futures = "0.3"
|
||||
|
||||
Reference in new issue
Block a user