Amend ADR-083 with the crate-extraction decision: the endpoint moves from alknet-core into a new crate alknet-endpoint, mirroring the alknet-client extraction (ADR-089). The ADR's shape (new + builder methods + public dispatch + run/shutdown) is unchanged; only the location changes. The extraction is structural pruning, not an inline refactor. The endpoint is a leaf consumer of core's shared types (zero handler crates import it; 124 import sites for the other core modules). Extracting it lets core shed quinn/iroh/rcgen/rustls-acme — handler crates no longer transitively link those. A pure worker (client-only) does not pull alknet-endpoint at all. The dep graph is symmetric: alknet-core is the shared types crate; alknet-endpoint and alknet-client are the server-side and client-side establishment crates. New spec: crates/endpoint/README.md (the canonical endpoint spec). core/endpoint.md is deprecated to a stub. Cross-references updated across 8 docs (README, overview, tls, hub, client, core README, ADR-083, ADR-089 references). Architecture review passed (3 critical, 9 warnings — all addressed).
1.9 KiB
status, last_updated
| status | last_updated |
|---|---|
| deprecated | 2026-07-15 |
Endpoint (moved to alknet-endpoint)
This document is deprecated. The
AlknetEndpoint,HandlerRegistry, andEndpointErrortypes have been extracted fromalknet-coreinto a new cratealknet-endpoint(ADR-083 Amendment 2026-07-15). The canonical spec is nowcrates/endpoint/README.md.The shared types the endpoint imports (
ProtocolHandler,Connection,AuthContext,IdentityProvider,DynamicConfig) stay inalknet-core— seecore-types.md,auth.md,config.md.
Historical summary
The endpoint was originally in alknet-core/endpoint.rs as the central
runtime type — a multi-transport accept-loop runner that dispatches
incoming connections by ALPN (ADR-010, ADR-083). ADR-082 extracted the
TLS setup code to alknet-tls; ADR-083 restructured the endpoint to
take pre-built transports via with_quinn / with_iroh /
with_tcp_tls (no TLS config); ADR-083 Amendment 2026-07-15 extracted
the endpoint itself into alknet-endpoint so that handler crates no
longer transitively link quinn/iroh/rcgen via core.
The endpoint's semantics — ALPN dispatch, HandlerRegistry, accept
loops, public dispatch for SSH/WT, graceful shutdown — are unchanged
by the extraction. See
crates/endpoint/README.md for the current
spec and ADR-083
for the full decision.
What stayed in alknet-core
Connection::from_quinn / from_iroh stay in core's types.rs — they
are shared-type constructors used by both the endpoint's accept loop
(server) and alknet-client's dial (client, ADR-089), gated on core's
quinn / iroh features. See
ADR-083 §"The
quinn feature split".