docs: the targeted fork — ADR-013, the RFC 1928 core is owned
ADR-013 supersedes ADR-011's maintenance posture (not its mechanics):
the extracted T-generic subset is fully owned code, the vendor
framing is retired. Module renamed src/vendor/ -> src/rfc1928/
(naming decided in the ADR: 'vendor' names an ownership relation
now gone; 'socks5' would stutter and collide with the future
producer/consumer layers). Fork point = the tree as of the
extraction-review commit (5b18d4d); provenance stays permanent
(module docs + the extended LICENSE notice).
- ADR-013: fork posture, license mechanics (notice extended, not
replaced; post-fork modifications under the crate license),
hand-port replaces re-vendor, lint-allow posture dissolved
- ADR-011 marked Superseded (extraction mechanics remain
authoritative); ADR-002 references re-pointed
- vendor.md -> rfc1928.md rewritten as the owned-core spec (the cut
table re-read as the hand-port map)
- spec sweep: README index (ADR-013 row, doc table, principle 8),
overview (module map, deps, ADR table), producer/consumer/wire/
bast reference vocabulary, open-questions OQ-SK-04 resolution,
AGENTS.md conventions 4/17 + verification note + context bullet,
Cargo.toml description
Verification: cargo doc --no-deps clean; no stale vendor.md/src-vendor
references outside the ADR-011 historical text.
This commit is contained in:
1 parent
5b18d4d292
commit
001aac1fd5
16 files changed
+538
-305
No files matched your search
@@ -18,7 +18,7 @@ conforming to the BAST meta-schema at `https://alk.dev/bast/v1/schema`
|
||||
well-formedness.
|
||||
|
||||
**alksocks does not depend on alktype.** The runtime codec is the
|
||||
vendored fast-socks5 address encoding + the length-framing codec
|
||||
forked RFC 1928 address encoding + the length-framing codec
|
||||
(shaped on alktunnels' `frame_datagram`/`DatagramReader`, ADR-003);
|
||||
this BAST document is the human-readable contract describing what
|
||||
those round-trip. If runtime validation against the BAST becomes
|
||||
@@ -37,8 +37,8 @@ plus raw pass-through.
|
||||
Per the BAST format spec, a BAST document describes **binary data
|
||||
layouts** — not JSON payloads. The RFC 1928 conversation itself
|
||||
(negotiation, command, replies, the RFC UDP datagram header at front
|
||||
doors) is specified by RFC 1928 and implemented by the vendored
|
||||
fast-socks5 codecs ([vendor.md](vendor.md)) — it is not re-specified
|
||||
doors) is specified by RFC 1928 and implemented by the forked
|
||||
RFC 1928 codecs ([rfc1928.md](rfc1928.md)) — it is not re-specified
|
||||
here. This document covers exactly the alksocks-specific binary
|
||||
framing:
|
||||
|
||||
@@ -51,7 +51,7 @@ What this BAST deliberately does **not** cover:
|
||||
- **The RFC 1928 wire rules** — method negotiation, command/reply
|
||||
encoding, the `addr` sub-layout (ATYP + addr + port), the RFC UDP
|
||||
datagram header (RSV/FRAG/ATYP/addr/port, front doors only). The
|
||||
RFC is normative; the vendored codecs implement it.
|
||||
RFC is normative; the forked codecs implement it.
|
||||
- **The open-op params JSON shape** (`{}`) — UTF-8 JSON on the call
|
||||
plane; ADR-001.
|
||||
- **The channels 8-byte chunk header** — the channels layer's own
|
||||
@@ -99,7 +99,7 @@ arithmetic).)
|
||||
|
||||
Maps 1:1 to the on-wire bytes: `len` as `uint16` big-endian (2
|
||||
bytes), then exactly `len` bytes = `addr + data`. The `addr`
|
||||
sub-layout is the RFC 1928 address encoding as vendored
|
||||
sub-layout is the RFC 1928 address encoding as forked
|
||||
(`TargetAddr::to_be_bytes()`: ATYP `0x01` IPv4 / `0x03` domain /
|
||||
`0x04` IPv6, then the address, then the u16 BE port). RSV/FRAG do
|
||||
not ride the tunnel wire (ADR-003); FRAG ≠ 0 is refused at front
|
||||
@@ -129,7 +129,7 @@ upstream's, not re-specified here.
|
||||
- [ADR-003](decisions/003-udp-handle-swap.md) (the handle swap + the
|
||||
frame), [ADR-001](decisions/001-alpn-and-open-op.md) (the JSON
|
||||
open-op shape — outside BAST scope),
|
||||
[ADR-011](decisions/011-inline-vendor.md) (the vendored codecs)
|
||||
[ADR-011](decisions/011-inline-vendor.md) (the forked codecs)
|
||||
- [wire.md](wire.md) (the normative prose; §The Data Plane)
|
||||
- alktunnels `bast.md` (the BAST precedent — same meta-schema, same
|
||||
"binary framing only" scope rule; the length codec's original
|
||||
|
||||
Reference in new issue
Block a user