release: v0.1.0 — the initial release
- CHANGELOG: the 0.1.0 entry finalized for publish — the alkcall 0.8.1 / alktunnels 0.2.1 bumps and the fuzzing adoption folded in (the crate is unpublished, so no separate hardening cut — the alktunnels 0.2.1 precedent only applies post-publish); the fuzz/ workspace bullet added (three targets, 129 seeds, corpus-replay gate, campaigns clean) - README: the Version 0.1 note aligned (alkcall 0.8.1 — the duplicate-adopt fix is directly relevant to the consumer open/adopt paths; alktunnels 0.2.1; the fuzz posture noted) - docs/architecture/overview.md: dep tree 0.8.1 / 0.2.1 Verification: cargo test (376 default / 638 all-features), fuzz/shared corpus replay (3 pass), clippy --all-targets -D warnings (default, all-features, wasm32-unknown-unknown), fmt --check, doc, wasm32 check, and cargo publish --dry-run --allow-dirty all green (64 packaged files — fuzz/, docs/research|reviews|plans/, tasks/, .opencode/, AGENTS.md all excluded)
This commit is contained in:
1 parent
08a3694464
commit
3127e0231a
3 files changed
+32
-13
No files matched your search
+19
-4
@@ -10,11 +10,14 @@ this crate adheres to [Semantic Versioning](https://semver.org/).
|
||||
|
||||
The initial release: SOCKS5 (RFC 1928) as a produced resource on
|
||||
alkcall channels — the `-D` flavor as a first-class protocol crate,
|
||||
over alkcall 0.8.0. The defining posture: the protocol never binds a
|
||||
over alkcall 0.8.1. The defining posture: the protocol never binds a
|
||||
port; kernel binds exist only as explicit, feature-gated assembly
|
||||
shapes. Composed against by the alktunnels 0.2.0 graduation (the
|
||||
shapes. Composed against by the alktunnels 0.2.1 graduation (the
|
||||
direct op + the bind-first/forwarded flow power the composed
|
||||
providers).
|
||||
providers). Fuzzing adopted (the `fuzz/` workspace — excluded from
|
||||
the published package) over the crate's two attacker-reachable
|
||||
parsers: the ASSOCIATE datagram codec and the RFC 1928 handshake;
|
||||
campaigns clean, no crate bugs.
|
||||
|
||||
### Added
|
||||
|
||||
@@ -77,7 +80,7 @@ providers).
|
||||
listener (`ProducerDoor` — vanilla clients dial it, each accepted
|
||||
connection is served via `serve_socks5_over`; the ADR-014
|
||||
idle-first-byte window + max-sessions cap knobs).
|
||||
- **The `composed` feature (ADR-008/009)** — the alktunnels 0.2.0
|
||||
- **The `composed` feature (ADR-008/009)** — the alktunnels 0.2.1
|
||||
composed providers: `direct_egress` (the direct-op egress — a lazy
|
||||
destination→tunnel table, `DEFAULT_MAX_TUNNELS` bounded), and
|
||||
`bindfirst_accept` + `register_forwarded_serving` (the BIND accept
|
||||
@@ -91,6 +94,18 @@ providers).
|
||||
reference checkout (`tests/rfc1928-differential.rs`), the
|
||||
protocol-core integration suite (`tests/core-integration.rs`), and
|
||||
the assembly-layer integration suite (`tests/assembly-integration.rs`).
|
||||
- **Fuzzing (`fuzz/` workspace, `docs/research/fuzzing.md`)** — the
|
||||
alkcall §5 pattern adopted for this crate's two attacker-reachable
|
||||
parser classes: `datagram_codec` (the `wire` codec — no-panic,
|
||||
infallible decode, size bound, re-frame round-trip, the
|
||||
`retained_bytes` bound) and `rfc1928_codec` (the RFC 1928 handshake
|
||||
state machine, fed attacker bytes from both protocol directions),
|
||||
plus `params_parse`. Invariant logic lives in `fuzz/shared/` — a
|
||||
stable-toolchain crate replayed as plain `cargo test` (the corpus
|
||||
replay is the fuzz gate). 129 committed seeds; detached campaigns
|
||||
clean (`oom/timeout/crash: 0/0/0`, coverage saturated). The one
|
||||
diagnostic added: `DatagramReader::retained_bytes()`. `fuzz/` is
|
||||
excluded from the workspace and from the published package.
|
||||
|
||||
[`Socks5ChannelSession`]: https://docs.rs/alksocks/latest/alksocks/consumer/struct.Socks5ChannelSession.html
|
||||
[`AssociateSession`]: https://docs.rs/alksocks/latest/alksocks/consumer/struct.AssociateSession.html
|
||||
|
||||
@@ -215,12 +215,16 @@ default build is wasm-clean by construction.
|
||||
|
||||
## Version 0.1
|
||||
|
||||
The first release rides alkcall 0.8.0 (the establisher reply
|
||||
projection is not consumed yet — the open op's params are trivial) and
|
||||
alktunnels 0.2.0 (the direct op + the bind-first/forwarded flow power
|
||||
the composed providers). Wire-stable surface: the `alk/socks5` ALPN,
|
||||
the `channels/socks5/sub` open op with `{}` params, and the two scope
|
||||
constants — all pinned by ADRs 001–014.
|
||||
The first release rides alkcall 0.8.1 (the establisher reply
|
||||
projection is not consumed yet — the open op's params are trivial;
|
||||
the 0.8.1 duplicate-adopt fix is directly relevant to the consumer
|
||||
open/adopt paths) and alktunnels 0.2.1 (the direct op + the
|
||||
bind-first/forwarded flow power the composed providers). The
|
||||
`fuzz/` workspace (excluded from the published package) fuzzes the
|
||||
two attacker-reachable parser classes — the ASSOCIATE datagram codec
|
||||
and the RFC 1928 handshake state machine. Wire-stable surface: the
|
||||
`alk/socks5` ALPN, the `channels/socks5/sub` open op with `{}` params,
|
||||
and the two scope constants — all pinned by ADRs 001–014.
|
||||
|
||||
## Verification
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ protocol layer; crate-level vocabulary is producer/consumer.
|
||||
|
||||
```
|
||||
alksocks (default — wasm-clean)
|
||||
├── alkcall 0.8.0 (core types: Connection, ProtocolHandler, BiStream,
|
||||
├── alkcall 0.8.1 (core types: Connection, ProtocolHandler, BiStream,
|
||||
│ AuthContext, Identity, AccessControl, OwnershipProvider;
|
||||
│ channels: ChannelCore/ChannelClient,
|
||||
│ register_openable_with_establisher, pump_bidi,
|
||||
@@ -135,7 +135,7 @@ alksocks (local feature) — non-wasm by design
|
||||
the first-party local backends + front doors
|
||||
|
||||
alksocks (composed feature)
|
||||
└── adds: alktunnels 0.2.0 (the direct op egress; the bind-first
|
||||
└── adds: alktunnels 0.2.1 (the direct op egress; the bind-first
|
||||
listen accept; ADR-008's composed providers) — its default
|
||||
crate is wasm-clean; the composed providers use only the
|
||||
ungated channels surface (verify with the wasm check)
|
||||
@@ -156,7 +156,7 @@ differential-testing behavioral reference.
|
||||
|---------|----------|------|
|
||||
| *(default)* | the RFC 1928 core (`src/rfc1928/`, ADR-013 — codecs, typestate), wire codec, open-op spec, the three seams' traits/types, producer + consumer session types — protocol only; zero kernel-net code, wasm-clean by construction | yes |
|
||||
| `local` | the crate's first-party local backends: TCP dial, UDP egress socket, BIND `TcpListener` accept, the front doors (consumer + producer local shapes); brings `tokio/net` + `socket2` into the graph | no (build error on wasm, the alktty posture) |
|
||||
| `composed` | the composed providers over alktunnels 0.2.0: direct-op egress (lazy destination→tunnel table), bind-first listen accept — adds the alktunnels dep | yes (alktunnels' default crate is wasm-clean; the composed providers use only its ungated channels surface — verify with the wasm check at implementation) |
|
||||
| `composed` | the composed providers over alktunnels 0.2.1: direct-op egress (lazy destination→tunnel table), bind-first listen accept — adds the alktunnels dep | yes (alktunnels' default crate is wasm-clean; the composed providers use only its ungated channels surface — verify with the wasm check at implementation) |
|
||||
|
||||
## Module Map
|
||||
|
||||
|
||||
Reference in new issue
Block a user