# ws-asyncapi > > > > > > > > > > > ws-asyncapi — contract-first, end-to-end typed WebSockets for TypeScript: events, RPC (acks), streams, presence, history, and live cursors, with React/Solid bindings. Declare one channel — get a typed client with RPC, streams, presence, and live cursors. Socket.IO's runtime, tRPC-grade types. ## Table of Contents ### Other - [Abstract Class: WebSocketImplementation\](https://ws-asyncapi.github.io/documentation/api/core/classes/WebSocketImplementation.md) - [Class: Channel\](https://ws-asyncapi.github.io/documentation/api/core/classes/Channel.md) - [Class: IdempotencyCache](https://ws-asyncapi.github.io/documentation/api/core/classes/IdempotencyCache.md) - [Class: LocalBackplane](https://ws-asyncapi.github.io/documentation/api/core/classes/LocalBackplane.md) - [Class: OutboundRpc](https://ws-asyncapi.github.io/documentation/api/core/classes/OutboundRpc.md) - [Class: RpcError](https://ws-asyncapi.github.io/documentation/api/client/classes/RpcError.md) - [Class: StreamRegistry](https://ws-asyncapi.github.io/documentation/api/core/classes/StreamRegistry.md) - [client](https://ws-asyncapi.github.io/documentation/api/client.md) - [core](https://ws-asyncapi.github.io/documentation/api/core.md) - [cursors](https://ws-asyncapi.github.io/documentation/api/cursors.md) - [emitter](https://ws-asyncapi.github.io/documentation/api/emitter.md) - [Function: applyCommand()](https://ws-asyncapi.github.io/documentation/api/core/functions/applyCommand.md) - [Function: closeConnection()](https://ws-asyncapi.github.io/documentation/api/core/functions/closeConnection.md) - [Function: connectionStore()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/connectionStore.md) - [Function: contractHash()](https://ws-asyncapi.github.io/documentation/api/core/functions/contractHash.md) - [Function: createClient()](https://ws-asyncapi.github.io/documentation/api/client/functions/createClient.md) - [Function: createEmitter()](https://ws-asyncapi.github.io/documentation/api/emitter/functions/createEmitter.md) - [Function: createReactClient()](https://ws-asyncapi.github.io/documentation/api/react/functions/createReactClient.md) - [Function: createSolidClient()](https://ws-asyncapi.github.io/documentation/api/solid/functions/createSolidClient.md) - [Function: createTestHarness()](https://ws-asyncapi.github.io/documentation/api/testing/functions/createTestHarness.md) - [Function: cursorsStore()](https://ws-asyncapi.github.io/documentation/api/cursors/functions/cursorsStore.md) - [Function: definePlugin()](https://ws-asyncapi.github.io/documentation/api/core/functions/definePlugin.md) - [Function: dispatchFrame()](https://ws-asyncapi.github.io/documentation/api/core/functions/dispatchFrame.md) - [Function: emitServerPlugin()](https://ws-asyncapi.github.io/documentation/api/core/functions/emitServerPlugin.md) - [Function: fromStore()](https://ws-asyncapi.github.io/documentation/api/solid/functions/fromStore.md) - [Function: getAsyncApiDocument()](https://ws-asyncapi.github.io/documentation/api/core/functions/getAsyncApiDocument.md) - [Function: getAsyncApiUI()](https://ws-asyncapi.github.io/documentation/api/core/functions/getAsyncApiUI.md) - [Function: historyQueryKey()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/historyQueryKey.md) - [Function: historyQueryOptions()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/historyQueryOptions.md) - [Function: isStandardSchema()](https://ws-asyncapi.github.io/documentation/api/core/functions/isStandardSchema.md) - [Function: lastEventStore()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/lastEventStore.md) - [Function: mutationOptions()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/mutationOptions.md) - [Function: openConnection()](https://ws-asyncapi.github.io/documentation/api/core/functions/openConnection.md) - [Function: perSocketRoom()](https://ws-asyncapi.github.io/documentation/api/core/functions/perSocketRoom.md) - [Function: pluginName()](https://ws-asyncapi.github.io/documentation/api/core/functions/pluginName.md) - [Function: presenceStore()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/presenceStore.md) - [Function: publishEvent()](https://ws-asyncapi.github.io/documentation/api/core/functions/publishEvent.md) - [Function: registerJsonSchemaConverter()](https://ws-asyncapi.github.io/documentation/api/core/functions/registerJsonSchemaConverter.md) - [Function: requestQueryOptions()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/requestQueryOptions.md) - [Function: rpcQueryKey()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/rpcQueryKey.md) - [Function: streamFold()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/streamFold.md) - [Function: streamFold()](https://ws-asyncapi.github.io/documentation/api/react/functions/streamFold.md) - [Function: streamStore()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/streamStore.md) - [Function: subscribeHistoryLive()](https://ws-asyncapi.github.io/documentation/api/query-core/functions/subscribeHistoryLive.md) - [Function: toJsonSchema()](https://ws-asyncapi.github.io/documentation/api/core/functions/toJsonSchema.md) - [Function: useStore()](https://ws-asyncapi.github.io/documentation/api/react/functions/useStore.md) - [Function: validate()](https://ws-asyncapi.github.io/documentation/api/core/functions/validate.md) - [Function: websocketAsyncAPI()](https://ws-asyncapi.github.io/documentation/api/client/functions/websocketAsyncAPI.md) - [Interface: Backplane](https://ws-asyncapi.github.io/documentation/api/core/interfaces/Backplane.md) - [Interface: BackplaneMessage](https://ws-asyncapi.github.io/documentation/api/core/interfaces/BackplaneMessage.md) - [Interface: CachedRpc](https://ws-asyncapi.github.io/documentation/api/core/interfaces/CachedRpc.md) - [Interface: CloseEvent](https://ws-asyncapi.github.io/documentation/api/client/interfaces/CloseEvent.md) - [Interface: Connection](https://ws-asyncapi.github.io/documentation/api/core/interfaces/Connection.md) - [Interface: CursorPoint](https://ws-asyncapi.github.io/documentation/api/cursors/interfaces/CursorPoint.md) - [Interface: CursorsClient\](https://ws-asyncapi.github.io/documentation/api/cursors/interfaces/CursorsClient.md) - [Interface: CursorSmoother](https://ws-asyncapi.github.io/documentation/api/cursors/interfaces/CursorSmoother.md) - [Interface: CursorsOptions\](https://ws-asyncapi.github.io/documentation/api/cursors/interfaces/CursorsOptions.md) - [Interface: EmitterOptions](https://ws-asyncapi.github.io/documentation/api/emitter/interfaces/EmitterOptions.md) - [Interface: HeartbeatOptions](https://ws-asyncapi.github.io/documentation/api/client/interfaces/HeartbeatOptions.md) - [Interface: IdempotencyOptions](https://ws-asyncapi.github.io/documentation/api/core/interfaces/IdempotencyOptions.md) - [Interface: LocalBackplaneOptions](https://ws-asyncapi.github.io/documentation/api/core/interfaces/LocalBackplaneOptions.md) - [Interface: MessageHandlerSchema\](https://ws-asyncapi.github.io/documentation/api/core/interfaces/MessageHandlerSchema.md) - [Interface: OpenEvent](https://ws-asyncapi.github.io/documentation/api/client/interfaces/OpenEvent.md) - [Interface: PresenceAccessors\](https://ws-asyncapi.github.io/documentation/api/solid/interfaces/PresenceAccessors.md) - [Interface: PresenceApi\](https://ws-asyncapi.github.io/documentation/api/client/interfaces/PresenceApi.md) - [Interface: PresenceResult\](https://ws-asyncapi.github.io/documentation/api/react/interfaces/PresenceResult.md) - [Interface: PresenceSnapshotState](https://ws-asyncapi.github.io/documentation/api/query-core/interfaces/PresenceSnapshotState.md) - [Interface: QueryCoreClient](https://ws-asyncapi.github.io/documentation/api/query-core/interfaces/QueryCoreClient.md) - [Interface: ReactClient\](https://ws-asyncapi.github.io/documentation/api/react/interfaces/ReactClient.md) - [Interface: ReconnectOptions](https://ws-asyncapi.github.io/documentation/api/client/interfaces/ReconnectOptions.md) - [Interface: RemoteSocketInfo](https://ws-asyncapi.github.io/documentation/api/core/interfaces/RemoteSocketInfo.md) - [Interface: RequestData\](https://ws-asyncapi.github.io/documentation/api/core/interfaces/RequestData.md) - [Interface: RequestOptions](https://ws-asyncapi.github.io/documentation/api/client/interfaces/RequestOptions.md) - [Interface: RpcDefinition](https://ws-asyncapi.github.io/documentation/api/core/interfaces/RpcDefinition.md) - [Interface: ServerPlugin](https://ws-asyncapi.github.io/documentation/api/core/interfaces/ServerPlugin.md) - [Interface: ServerPluginContext](https://ws-asyncapi.github.io/documentation/api/core/interfaces/ServerPluginContext.md) - [Interface: ServerRpcDefinition](https://ws-asyncapi.github.io/documentation/api/core/interfaces/ServerRpcDefinition.md) - [Interface: SessionState](https://ws-asyncapi.github.io/documentation/api/core/interfaces/SessionState.md) - [Interface: SolidClient\](https://ws-asyncapi.github.io/documentation/api/solid/interfaces/SolidClient.md) - [Interface: StreamAccessors\](https://ws-asyncapi.github.io/documentation/api/solid/interfaces/StreamAccessors.md) - [Interface: StreamDefinition](https://ws-asyncapi.github.io/documentation/api/core/interfaces/StreamDefinition.md) - [Interface: StreamResult\](https://ws-asyncapi.github.io/documentation/api/react/interfaces/StreamResult.md) - [Interface: StreamSnapshot\](https://ws-asyncapi.github.io/documentation/api/query-core/interfaces/StreamSnapshot.md) - [Interface: Subscribable\](https://ws-asyncapi.github.io/documentation/api/query-core/interfaces/Subscribable.md) - [Interface: TestConnectOptions](https://ws-asyncapi.github.io/documentation/api/testing/interfaces/TestConnectOptions.md) - [Interface: TestHarness\](https://ws-asyncapi.github.io/documentation/api/testing/interfaces/TestHarness.md) - [Interface: TestHarnessOptions](https://ws-asyncapi.github.io/documentation/api/testing/interfaces/TestHarnessOptions.md) - [Interface: ValidationIssue](https://ws-asyncapi.github.io/documentation/api/core/interfaces/ValidationIssue.md) - [Interface: WebsocketAsyncAPIMap](https://ws-asyncapi.github.io/documentation/api/client/interfaces/WebsocketAsyncAPIMap.md) - [Interface: WebsocketAsyncAPIOptions\](https://ws-asyncapi.github.io/documentation/api/client/interfaces/WebsocketAsyncAPIOptions.md) - [Interface: WebsocketClientData\](https://ws-asyncapi.github.io/documentation/api/core/interfaces/WebsocketClientData.md) - [Interface: WebsocketDataType](https://ws-asyncapi.github.io/documentation/api/core/interfaces/WebsocketDataType.md) - [Interface: WebSocketLike](https://ws-asyncapi.github.io/documentation/api/client/interfaces/WebSocketLike.md) - [Interface: WsClient\](https://ws-asyncapi.github.io/documentation/api/client/interfaces/WsClient.md) - [query-core](https://ws-asyncapi.github.io/documentation/api/query-core.md) - [react](https://ws-asyncapi.github.io/documentation/api/react.md) - [solid](https://ws-asyncapi.github.io/documentation/api/solid.md) - [testing](https://ws-asyncapi.github.io/documentation/api/testing.md) - [Type Alias: AddressPattern\

](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/AddressPattern.md) - [Type Alias: AnyChannel](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/AnyChannel.md) - [Type Alias: AnySchema](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/AnySchema.md) - [Type Alias: AuthHandler\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/AuthHandler.md) - [Type Alias: BeforeUpgradeHandler\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/BeforeUpgradeHandler.md) - [Type Alias: BuiltinErrorCode](https://ws-asyncapi.github.io/documentation/api/client/type-aliases/BuiltinErrorCode.md) - [Type Alias: Emitter\](https://ws-asyncapi.github.io/documentation/api/emitter/type-aliases/Emitter.md) - [Type Alias: ExtractRouteParams\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/ExtractRouteParams.md) - [Type Alias: FindMatchingAddressKey\](https://ws-asyncapi.github.io/documentation/api/client/type-aliases/FindMatchingAddressKey.md) - [Type Alias: GetWebSocketType\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/GetWebSocketType.md) - [Type Alias: HistoryEntry\](https://ws-asyncapi.github.io/documentation/api/client/type-aliases/HistoryEntry.md) - [Type Alias: InferClient\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/InferClient.md) - [Type Alias: InferIn\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/InferIn.md) - [Type Alias: InferOut\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/InferOut.md) - [Type Alias: JsonSchemaTarget](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/JsonSchemaTarget.md) - [Type Alias: MaybePromise\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/MaybePromise.md) - [Type Alias: MessageHandler\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/MessageHandler.md) - [Type Alias: NamedPlugin\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/NamedPlugin.md) - [Type Alias: NodeCommand](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/NodeCommand.md) - [Type Alias: OnCloseHandler\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/OnCloseHandler.md) - [Type Alias: OnOpenHandler\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/OnOpenHandler.md) - [Type Alias: RpcHandler\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/RpcHandler.md) - [Type Alias: SafeResult\](https://ws-asyncapi.github.io/documentation/api/client/type-aliases/SafeResult.md) - [Type Alias: SchemaIO](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/SchemaIO.md) - [Type Alias: SmootherFactory](https://ws-asyncapi.github.io/documentation/api/cursors/type-aliases/SmootherFactory.md) - [Type Alias: StreamHandler\](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/StreamHandler.md) - [Type Alias: StreamReduce\](https://ws-asyncapi.github.io/documentation/api/query-core/type-aliases/StreamReduce.md) - [Type Alias: StreamReduce\](https://ws-asyncapi.github.io/documentation/api/react/type-aliases/StreamReduce.md) - [Type Alias: TypedRpcError\](https://ws-asyncapi.github.io/documentation/api/client/type-aliases/TypedRpcError.md) - [Type Alias: ValidationResult](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/ValidationResult.md) - [Type Alias: VendorJsonSchemaConverter](https://ws-asyncapi.github.io/documentation/api/core/type-aliases/VendorJsonSchemaConverter.md) - [Variable: AuthFrame](https://ws-asyncapi.github.io/documentation/api/core/variables/AuthFrame.md) - [Variable: COMMAND\_TOPIC](https://ws-asyncapi.github.io/documentation/api/core/variables/COMMAND_TOPIC.md) - [Variable: lerpSmoother](https://ws-asyncapi.github.io/documentation/api/cursors/variables/lerpSmoother.md) - [Variable: PLUGIN\_NAME](https://ws-asyncapi.github.io/documentation/api/core/variables/PLUGIN_NAME.md)