You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ActorGroup scene declares a family of identically structured distributed actors, one per identity — nothing activates at boot; the factory runs when the first message addressed to an identity arrives. Declaring the scene also registers the actor invocation endpoint (POST /_swiftweb/actors/invoke).
WebSocketActorTransport: one socket is a symmetric, multiplexed actor message bus (calls correlated by callID, server → client push targets client-hosted observer actors). WebSocketSessionRouter routes pushes back to the right connection, and BrowserWebSocketActorChannel drives the transport over the browser's native WebSocket.
@ResolvableActor emits access modifiers matching the actor, so public actors conform to their public exporting protocols.
Environment
Scene-level .environment() flows to pages, actions, streams, and actors, with request-derived values winning over scene values.
App-defined ClientEnvironmentKeys auto-register in generated wasm entrypoints (public top-level conformances are discovered during package generation), so scene values reach @Environment in ClientComponents after hydration — verified end-to-end in a browser.
Mounted ClientComponents now receive environment provided outside the mount across re-renders (the mount's snapshot seeds the hydration session's root environment).
Host architecture
The runtime core is host-neutral: SwiftWebHostKit defines the lowering contracts, and the default host is SwiftWebHTTPServerHost on swift-http-server (it re-exports SwiftWebCore, matching the contract the Vapor host established). Platform adapters live in sibling packages: swift-web-cloudflare and swift-web-vapor.
Generated packages support SWIFTWEB_DO=1 (Durable Object wasm builds) and the client runtime builds against the FoundationEssentials-based swift-html.
Dependencies
Every dependency resolves behind a version requirement: async-http-client 1.35.0, swift-http-server 0.1.0, swift-http-api-proposal 0.2.0, swift-html 0.9.2. The 0.2.0 tag is superseded — it cannot be consumed with from:/exact: requirements because its HTTP stack was revision-pinned; use 0.2.1.