diff --git a/docs/cultnet-transport-parity.md b/docs/cultnet-transport-parity.md index 579a1878..18161c48 100644 --- a/docs/cultnet-transport-parity.md +++ b/docs/cultnet-transport-parity.md @@ -280,11 +280,11 @@ Current progress: mechanics and UI-facing reconnect state; the controller owns retry attempt scheduling. - C# now has an `ICultNetSchemaClient` service-client port for schema-v0 - request/response bodies. The default adapter is still the LiteNetLib `Client`, - but Verse discovery, peer exchange, shard-log fetch, shard-snapshot fetch, - and shard write forwarding clients consume the port instead of constructing - LiteNetLib directly. This moves transport choice below service payload - ownership without claiming every daemon uses native RUDP yet. + request/response bodies. Verse discovery, peer exchange, shard-log fetch, + shard-snapshot fetch, and shard write forwarding clients consume the port and + choose the native RUDP schema client for `rudp://` endpoints while preserving + LiteNetLib for `cultnet://` endpoints. This moves transport choice below + service payload ownership without claiming every daemon uses native RUDP yet. - C# now also has a poll-driven `CultNetRudpReconnectLoop` for the native RUDP socket transport. Caller-owned game/service loops report closure, ask `ReconnectIfDue(nowMs)` inside their own scheduler, and the shared controller diff --git a/docs/runtime-parity-scope.md b/docs/runtime-parity-scope.md index 895312db..b4e5ff89 100644 --- a/docs/runtime-parity-scope.md +++ b/docs/runtime-parity-scope.md @@ -30,7 +30,7 @@ CultMesh. | Runtime | Role | Claimed parity | Not claimed | | --- | --- | --- | --- | -| C# | Reference implementation and production game/server substrate | CultCache typed documents and SoA, CultNet schema-v0, LiteNetLib production path with adapter profile, shared transport profiles, shared RUDP socket transport, C# interop RUDP serve/dial path, connected RUDP CultMesh client helpers, RUDP reconnect policy/controller and reconnect-loop helper, LiteNetLib client reconnect-controller adoption, schema-client transport port for service request/response clients, CultMesh node/session/catalog/stream/simulation/RUDP surfaces, authorized peer lookup | No need to abandon LiteNetLib before the CultNet adapter fully owns production service adoption | +| C# | Reference implementation and production game/server substrate | CultCache typed documents and SoA, CultNet schema-v0, LiteNetLib production path with adapter profile, shared transport profiles, shared RUDP socket transport, C# interop RUDP serve/dial path, connected RUDP CultMesh client helpers, RUDP-backed schema-client selection for `rudp://` service endpoints, RUDP reconnect policy/controller and reconnect-loop helper, LiteNetLib client reconnect-controller adoption, schema-client transport port for service request/response clients, CultMesh node/session/catalog/stream/simulation/RUDP surfaces, authorized peer lookup | No need to abandon LiteNetLib before the CultNet adapter fully owns production service adoption | | Python | Package runtime, local daemon endpoint, raw interop peer, typed state participant | CultCache/CultNet/CultMesh package surface, branded CultMesh node/schema/shard/Verse/peer/authority/stream/RUDP ergonomics, authorized peer lookup, shard catalogs/logs, schema-transport factory for raw client request/subscription flows, local TCP and RUDP CultMesh server listeners, Python interop RUDP serve/dial path, session/prediction/simulation fact helpers, RUDP codec/session/socket transport, RUDP reconnect policy/controller and reconnect-loop helper, schema-v0 MessagePack over RUDP evidence, benchmark evidence against C# cache paths | Universal C# throughput, full C# daemon/server stack, and RUDP as the only public service pipe | | TypeScript | Node/browser-adjacent projection and interop runtime | CultCache parity tests, CultNet schema-v0 peer, advertised schema/shard catalog wire contracts plus request/sync helpers, transport profiles, TCP-framed transport port and peer helper, shared RUDP socket transport, RUDP interop serve/dial path, RUDP reconnect policy/controller, RUDP reconnect-loop helper, branded CultMesh node/schema/shard/Verse/peer/authority/stream/RUDP ergonomics, authorized peer lookup | Full C# game session/server stack | | Rust | Low-level cache/transport/runtime substrate | CultCache/CultNet interop lane, schema and shard catalog helpers, transport profiles, TCP-framed port, shared RUDP codec/session/socket transport, Rust interop RUDP serve/dial path, connected RUDP CultMesh client helpers, RUDP reconnect policy/controller and reconnect-loop helper, schema-v0 MessagePack over RUDP evidence, small CultMesh facade for schema registry, shard catalog, peer cards, authority leases, authorized peer lookup, RUDP endpoint parsing, and peer-card/authorized-peer RUDP client construction | Full CultMesh game-session/server facade, stream catalog, or production game-session server | @@ -73,10 +73,9 @@ server body, is deliberately not made. `NetPeer` callbacks, and TypeScript TCP peer creation has a transport-first helper. C# Verse discovery, peer exchange, shard-log fetch, shard-snapshot fetch, and shard write forwarding clients now consume a schema-client - transport port; shard log fetch, shard snapshot fetch, and shard write - forwarding now select the C# RUDP schema client for `rudp://` endpoints while - keeping LiteNetLib for `cultnet://` endpoints. Broader daemon adoption remains - the unclaimed layer. + transport port and select the C# RUDP schema client for `rudp://` endpoints + while keeping LiteNetLib for `cultnet://` endpoints. Broader daemon adoption + remains the unclaimed layer. - Extend RUDP adoption through daemon/socket reconnect loops. RUDP profiles now advertise the portable reconnect policy, runtime-local tests prove the shared controller across the targeted runtimes, and the C# LiteNetLib client plus diff --git a/src/GameCult.Networking/Contracts/cultnet-distributed-database.md b/src/GameCult.Networking/Contracts/cultnet-distributed-database.md index e4145f69..8d2172c0 100644 --- a/src/GameCult.Networking/Contracts/cultnet-distributed-database.md +++ b/src/GameCult.Networking/Contracts/cultnet-distributed-database.md @@ -45,8 +45,9 @@ Implemented: - epoch-aware raw put/delete messages - routing hints on shard authority errors - injectable non-primary write forwarding policy -- schema-v0 write forwarder that dials advertised `cultnet://host:port` - primary endpoints +- schema-v0 write forwarder that dials advertised `rudp://host:port` primary + endpoints, while keeping `cultnet://host:port` as the LiteNetLib compatibility + lane - in-memory per-shard mutation logs with sequence numbers, epochs, mutation kind, schema id, key, and document references - mutation-log catch-up by last seen sequence @@ -56,7 +57,8 @@ Implemented: idempotent replay - shard log replicator that pulls non-primary shards from catalog-advertised primary endpoints -- schema-v0 shard log fetcher for `cultnet://host:port` endpoints +- schema-v0 shard log fetcher for `rudp://host:port` endpoints, while keeping + `cultnet://host:port` as the LiteNetLib compatibility lane - restart-safe replica cursor store, including a local MessagePack file-backed implementation - durable authoritative shard-log storage behind