Skip to content

Latest commit

 

History

History
51 lines (45 loc) · 3.56 KB

File metadata and controls

51 lines (45 loc) · 3.56 KB

Public API inventory

This inventory is the pre-stabilization contract. “Generated” means a comptime factory returns a concrete, fully typed Zig type; anytype in a declaration is generic syntax and is specialized at the call site, not dynamic typing.

Surface Status Purpose
Config, Endpoint(cfg), memoryPlan(cfg) canonical Configuration, transport table, exact sizing
proto.channels, proto.Session, proto.Endpoint canonical/advanced Channel schema and sans-I/O transport
proto.stream.Transfer, proto.live_stream.Live canonical Seekable resumable and sequential byte streaming
proto.conn advanced Tokens, identity, ICE/STUN, relay, resumption, reset, migration primitives
proto.delivery advanced ACK/loss/RTT/MTU/pacing/congestion primitives
host.Bridge, host.SnapshotAck canonical Typed endpoint-to-replication snapshot bridge
replication.Game, replication.Engine canonical Generated world/engine stack
replication.ReconcileResult canonical held, corrected, resynchronized, future, history_exhausted
runtime.transport canonical Driver contracts (assert*), the shared pump (drain/flush/flushBatched), and housekeep
runtime.net.Platform canonical Compile-time-selected best backend per target (bind/run)
runtime.reactor, io, io_linux, sharded, task canonical Engine-loop and real socket drivers
runtime.sim canonical test API Deterministic impairment/path-transition lab
runtime.metrics, ops, record, checkpoint canonical operations Metrics, health/drain, captures, persistence

Removed before stabilization: RealtimeBridge, magnetNetEqual, the boolean reconcile API, and reconcileDetailed. There are no compatibility aliases for these names. Bridge, magnetEqual, and enum-valued reconcile are the only forms.

The runtime layer was likewise collapsed onto a single set of contracts, with no forwarding shims:

Removed Use instead
runtime.poll (recvAll / flushAll) runtime.transport (drain / flush)
io.runBlocking, io.serve, io.Driver io.runReactor (runBlocking was a one-line forward to it)
io.nowMs, io.unixSeconds, io.sendBatch io.IoClock, transport.flushBatched
AddrTable.recordChecked / lookupChecked record / lookup, now the only (checked) forms
Reactor.addChecked add, which now returns bool
io_linux.sendChecked send, which counts into send_errors
task.pumpSession's recvOne / sendOne the standard recv / send transport
record.Dir record.Direction (disambiguated from sim.Dir)
reading Endpoint.used / .addrs directly Endpoint.connections(), also on Sharded
io.bindUdp, io.SocketTransport io.Socket(cap), or net.Platform(cap).bind
io.runReactorSeeded sock.remember(ip) then runReactor
recvBatch's timeout_ns waitReadable(ns) then recvBatch (the timeout never applied)
io_linux.runReactorGro, recvGro, enableGro io_linux.runReactor (recvmmsg batch recv)
io_linux.enableGso nothing; there was no GSO send path for it to enable
io_linux.UdpSocket io_linux.Socket(Endpoint.capacity), or net.Platform(cap)

Callback wrappers use *anyopaque internally when a runtime callback needs type erasure, but their constructors bind a concrete context and function signature. Application-facing data, channel messages, components, inputs, streams, and bridge types remain concrete and compile-time checked.