HttpRunner
Connects cluster runner RPCs to HTTP and WebSocket transports.
Runner nodes communicate through the Runners.Rpcs protocol. This module
provides client protocol layers for dialing runner addresses over HTTP or
WebSocket, HTTP effects that serve runner RPC handlers, route layers for
installing runner endpoints into an HttpRouter, and ready-made layers for
HTTP or WebSocket runner communication.
Layers
layerClient
Layer that provides Sharding and Runners using the configured runner RPC
client protocol and storage services.
Signature
declare const layerClient: Layer.Layer<Sharding.Sharding | Runners.Runners, never, ShardingConfig.ShardingConfig | Runners.RpcClientProtocol | MessageStorage | RunnerStorage | RunnerHealth>layerClientProtocolHttp
Provides a runner RPC client protocol that connects to runner addresses over HTTP.
Details
The configured path is appended to each runner address, and https switches
the generated URL from http to https.
Signature
declare function layerClientProtocolHttp(options: { readonly https?: boolean; readonly path: string;}): Layer<RpcClientProtocol, never, RpcSerialization | HttpClient>layerClientProtocolHttpDefault
Default HTTP runner client protocol layer using path /.
Signature
declare const layerClientProtocolHttpDefault: Layer.Layer<Runners.RpcClientProtocol, never, RpcSerialization.RpcSerialization | HttpClient.HttpClient>layerClientProtocolWebsocket
Provides a runner RPC client protocol that connects to runner addresses over WebSocket.
Details
The configured path is appended to each runner address, and https switches
the generated URL from ws to wss.
Signature
declare function layerClientProtocolWebsocket(options: { readonly https?: boolean; readonly path: string;}): Layer<RpcClientProtocol, never, RpcSerialization | WebSocketConstructor>layerClientProtocolWebsocketDefault
Default WebSocket runner client protocol layer using path /.
Signature
declare const layerClientProtocolWebsocketDefault: Layer.Layer<Runners.RpcClientProtocol, never, RpcSerialization.RpcSerialization | Socket.WebSocketConstructor>Layer that serves runner routes at / and configures HTTP runner clients.
Details
It serves runner routes at / and configures runner clients to communicate
over HTTP.
Signature
declare const layerHttp: Layer.Layer<Sharding.Sharding | Runners.Runners, never, RpcSerialization.RpcSerialization | ShardingConfig.ShardingConfig | HttpClient.HttpClient | HttpServer.HttpServer | MessageStorage | RunnerStorage | RunnerHealth>layerHttpClientOnly
Provides a client-only HTTP runner layer.
When to use
Use to provide runner clients over HTTP from a process that should not serve runner routes.
Details
It configures runner clients to communicate over HTTP without serving runner HTTP routes.
Signature
declare const layerHttpClientOnly: Layer.Layer<Sharding.Sharding | Runners.Runners, never, RpcSerialization.RpcSerialization | ShardingConfig.ShardingConfig | HttpClient.HttpClient | MessageStorage | RunnerStorage>layerHttpOptions
Layer that adds HTTP runner routes to the provided HttpRouter.
Signature
declare function layerHttpOptions(options: { readonly path: PathInput;}): Layer<Sharding | Runners, never, HttpRouter | MessageStorage | ShardingConfig | RpcClientProtocol | RpcSerialization | RunnerStorage | RunnerHealth>layerWebsocket
Layer that serves runner routes at / and configures WebSocket runner clients.
Details
It serves runner routes at / and configures runner clients to communicate
over WebSocket.
Signature
declare const layerWebsocket: Layer.Layer<Sharding.Sharding | Runners.Runners, never, RpcSerialization.RpcSerialization | ShardingConfig.ShardingConfig | Socket.WebSocketConstructor | HttpServer.HttpServer | MessageStorage | RunnerStorage | RunnerHealth>layerWebsocketClientOnly
Provides a client-only WebSocket runner layer.
When to use
Use to provide runner clients over WebSocket from a process that should not serve runner routes.
Details
It configures runner clients to communicate over WebSocket without serving runner WebSocket routes.
Signature
declare const layerWebsocketClientOnly: Layer.Layer<Sharding.Sharding | Runners.Runners, never, ShardingConfig.ShardingConfig | MessageStorage | RunnerStorage | RpcSerialization.RpcSerialization | Socket.WebSocketConstructor>layerWebsocketOptions
Layer that adds WebSocket runner routes to the provided HttpRouter.
Signature
declare function layerWebsocketOptions(options: { readonly path: PathInput;}): Layer<Sharding | Runners, never, HttpRouter | MessageStorage | ShardingConfig | RpcClientProtocol | RpcSerialization | RunnerStorage | RunnerHealth>Running
toHttpEffect
Builds an HTTP effect that serves runner RPCs over the HTTP protocol.
Details
The returned effect is produced from RunnerServer.layerHandlers and the
cluster runner RPC group.
Signature
declare const toHttpEffect: Effect.Effect<Effect.Effect<HttpServerResponse, never, Scope | HttpServerRequest>, never, Scope | RpcSerialization.RpcSerialization | Sharding.Sharding | MessageStorage>toHttpEffectWebsocket
Builds an HTTP effect that serves runner RPCs over WebSocket.
Details
The returned effect is produced from RunnerServer.layerHandlers and the
cluster runner RPC group.
Signature
declare const toHttpEffectWebsocket: Effect.Effect<Effect.Effect<HttpServerResponse, never, Scope | HttpServerRequest>, never, Scope | RpcSerialization.RpcSerialization | Sharding.Sharding | MessageStorage>