# Typesafe realtime for TypeScript > End-to-end typesafe realtime for TypeScript — role-scoped contracts, req/res, rooms & topics from one contract, over WebSocket, HTTP, or libp2p. ## Table of Contents ### Introduction - [Why super-line](https://super-line.dogar.biz/guide/introduction.md) - [Getting started](https://super-line.dogar.biz/guide/getting-started.md) - [The contract](https://super-line.dogar.biz/guide/the-contract.md) ### Transports - [Choose your wire](https://super-line.dogar.biz/guide/transports.md) - [WebSocket transport](https://super-line.dogar.biz/guide/transport-websocket.md) - [HTTP transport — SSE & long-poll](https://super-line.dogar.biz/guide/transport-http.md) - [libp2p & WebRTC transport](https://super-line.dogar.biz/guide/transport-libp2p.md) - [Loopback transport (testing)](https://super-line.dogar.biz/guide/transport-loopback.md) ### Interaction flavors - [Requests](https://super-line.dogar.biz/guide/requests.md) - [Events & rooms](https://super-line.dogar.biz/guide/events-rooms.md) - [Topics](https://super-line.dogar.biz/guide/topics.md) - [The cluster event bus](https://super-line.dogar.biz/guide/cluster-event-bus.md) ### Persisted state - [Stores](https://super-line.dogar.biz/guide/store.md) - [Synced state (CRDT)](https://super-line.dogar.biz/guide/synced-state.md) ### Server - [Roles & auth](https://super-line.dogar.biz/guide/roles-auth.md) - [Middleware & lifecycle](https://super-line.dogar.biz/guide/middleware-lifecycle.md) - [Error handling](https://super-line.dogar.biz/guide/errors.md) - [Introspection & presence](https://super-line.dogar.biz/guide/introspection-and-presence.md) - [Control Center](https://super-line.dogar.biz/guide/control-center.md) ### Client - [Reconnection & delivery](https://super-line.dogar.biz/guide/reconnection-delivery.md) - [Serialization](https://super-line.dogar.biz/guide/serialization.md) - [React](https://super-line.dogar.biz/guide/react.md) ### Adapters - [Choose your backbone](https://super-line.dogar.biz/guide/scaling-adapters.md) - [Redis adapter](https://super-line.dogar.biz/guide/adapter-redis.md) - [libp2p adapter](https://super-line.dogar.biz/guide/adapter-libp2p.md) - [RabbitMQ adapter](https://super-line.dogar.biz/guide/adapter-rabbitmq.md) - [ZeroMQ adapter](https://super-line.dogar.biz/guide/adapter-zeromq.md) ### More - [Testing](https://super-line.dogar.biz/guide/testing.md) - [Use with your AI agent](https://super-line.dogar.biz/guide/ai-agents.md) - [Comparison & FAQ](https://super-line.dogar.biz/guide/comparison-faq.md) ### Packages - [@super-line/adapter-libp2p](https://super-line.dogar.biz/reference/@super-line/adapter-libp2p.md) - [@super-line/adapter-rabbitmq](https://super-line.dogar.biz/reference/@super-line/adapter-rabbitmq.md) - [@super-line/adapter-redis](https://super-line.dogar.biz/reference/@super-line/adapter-redis.md) - [@super-line/adapter-zeromq](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq.md) - [@super-line/client](https://super-line.dogar.biz/reference/@super-line/client.md) - [@super-line/core](https://super-line.dogar.biz/reference/@super-line/core.md) - [@super-line/react](https://super-line.dogar.biz/reference/@super-line/react.md) - [@super-line/server](https://super-line.dogar.biz/reference/@super-line/server.md) #### @super-line/adapter-libp2p ##### Interfaces - [Interface: Libp2pAdapterOptions](https://super-line.dogar.biz/reference/@super-line/adapter-libp2p/interfaces/Libp2pAdapterOptions.md) ##### Type Aliases - [Type Alias: PubSubLibp2p](https://super-line.dogar.biz/reference/@super-line/adapter-libp2p/type-aliases/PubSubLibp2p.md) ##### Functions - [Function: createLibp2pAdapter()](https://super-line.dogar.biz/reference/@super-line/adapter-libp2p/functions/createLibp2pAdapter.md) #### @super-line/adapter-rabbitmq ##### Interfaces - [Interface: RabbitmqAdapterOptions](https://super-line.dogar.biz/reference/@super-line/adapter-rabbitmq/interfaces/RabbitmqAdapterOptions.md) ##### Functions - [Function: createRabbitmqAdapter()](https://super-line.dogar.biz/reference/@super-line/adapter-rabbitmq/functions/createRabbitmqAdapter.md) #### @super-line/adapter-redis ##### Interfaces - [Interface: RedisAdapterOptions](https://super-line.dogar.biz/reference/@super-line/adapter-redis/interfaces/RedisAdapterOptions.md) ##### Functions - [Function: createRedisAdapter()](https://super-line.dogar.biz/reference/@super-line/adapter-redis/functions/createRedisAdapter.md) #### @super-line/adapter-zeromq ##### Interfaces - [Interface: ZeroMqByoOptions](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/interfaces/ZeroMqByoOptions.md) - [Interface: ZeroMqMeshOptions](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/interfaces/ZeroMqMeshOptions.md) - [Interface: ZeroMqProxy](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/interfaces/ZeroMqProxy.md) - [Interface: ZeroMqProxyModeOptions](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/interfaces/ZeroMqProxyModeOptions.md) - [Interface: ZeroMqProxyOptions](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/interfaces/ZeroMqProxyOptions.md) ##### Type Aliases - [Type Alias: ZeroMqAdapter](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/type-aliases/ZeroMqAdapter.md) - [Type Alias: ZeroMqAdapterOptions](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/type-aliases/ZeroMqAdapterOptions.md) - [Type Alias: ZeroMqPresenceOption](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/type-aliases/ZeroMqPresenceOption.md) ##### Functions - [Function: createZeroMqAdapter()](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/functions/createZeroMqAdapter.md) - [Function: createZeroMqProxy()](https://super-line.dogar.biz/reference/@super-line/adapter-zeromq/functions/createZeroMqProxy.md) #### @super-line/client ##### Interfaces - [Interface: BackoffOptions](https://super-line.dogar.biz/reference/@super-line/client/interfaces/BackoffOptions.md) - [Interface: CallOptions](https://super-line.dogar.biz/reference/@super-line/client/interfaces/CallOptions.md) - [Interface: ClientStoreHandle](https://super-line.dogar.biz/reference/@super-line/client/interfaces/ClientStoreHandle.md) - [Interface: ResourceHandle](https://super-line.dogar.biz/reference/@super-line/client/interfaces/ResourceHandle.md) - [Interface: Subscription](https://super-line.dogar.biz/reference/@super-line/client/interfaces/Subscription.md) - [Interface: SuperLineClientOptions\](https://super-line.dogar.biz/reference/@super-line/client/interfaces/SuperLineClientOptions.md) - [Interface: ValidationErrorInfo](https://super-line.dogar.biz/reference/@super-line/client/interfaces/ValidationErrorInfo.md) ##### Type Aliases - [Type Alias: ClientMethods\](https://super-line.dogar.biz/reference/@super-line/client/type-aliases/ClientMethods.md) - [Type Alias: ServerHandlers\](https://super-line.dogar.biz/reference/@super-line/client/type-aliases/ServerHandlers.md) - [Type Alias: SuperLineClient\](https://super-line.dogar.biz/reference/@super-line/client/type-aliases/SuperLineClient.md) ##### Functions - [Function: backoffDelay()](https://super-line.dogar.biz/reference/@super-line/client/functions/backoffDelay.md) - [Function: createSuperLineClient()](https://super-line.dogar.biz/reference/@super-line/client/functions/createSuperLineClient.md) #### @super-line/core ##### Classes - [Class: SuperLineError\](https://super-line.dogar.biz/reference/@super-line/core/classes/SuperLineError.md) ##### Interfaces - [Interface: Adapter](https://super-line.dogar.biz/reference/@super-line/core/interfaces/Adapter.md) - [Interface: ClientStore](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ClientStore.md) - [Interface: ClientTransport](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ClientTransport.md) - [Interface: ConnDescriptor](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ConnDescriptor.md) - [Interface: ConnView](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ConnView.md) - [Interface: Contract](https://super-line.dogar.biz/reference/@super-line/core/interfaces/Contract.md) - [Interface: Directional](https://super-line.dogar.biz/reference/@super-line/core/interfaces/Directional.md) - [Interface: ErrFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ErrFrame.md) - [Interface: EvtFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/EvtFrame.md) - [Interface: Handshake](https://super-line.dogar.biz/reference/@super-line/core/interfaces/Handshake.md) - [Interface: InspectedContract](https://super-line.dogar.biz/reference/@super-line/core/interfaces/InspectedContract.md) - [Interface: InspectedDirectional](https://super-line.dogar.biz/reference/@super-line/core/interfaces/InspectedDirectional.md) - [Interface: InspectedMessage](https://super-line.dogar.biz/reference/@super-line/core/interfaces/InspectedMessage.md) - [Interface: NodeStat](https://super-line.dogar.biz/reference/@super-line/core/interfaces/NodeStat.md) - [Interface: NodeView](https://super-line.dogar.biz/reference/@super-line/core/interfaces/NodeView.md) - [Interface: Perms](https://super-line.dogar.biz/reference/@super-line/core/interfaces/Perms.md) - [Interface: PingFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/PingFrame.md) - [Interface: PongFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/PongFrame.md) - [Interface: PresenceStore](https://super-line.dogar.biz/reference/@super-line/core/interfaces/PresenceStore.md) - [Interface: PubFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/PubFrame.md) - [Interface: RawConn](https://super-line.dogar.biz/reference/@super-line/core/interfaces/RawConn.md) - [Interface: ReqFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ReqFrame.md) - [Interface: RequestDef](https://super-line.dogar.biz/reference/@super-line/core/interfaces/RequestDef.md) - [Interface: ResFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ResFrame.md) - [Interface: Resource\](https://super-line.dogar.biz/reference/@super-line/core/interfaces/Resource.md) - [Interface: ResourceReplica](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ResourceReplica.md) - [Interface: RoleBlock](https://super-line.dogar.biz/reference/@super-line/core/interfaces/RoleBlock.md) - [Interface: SChangeFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SChangeFrame.md) - [Interface: SCloseFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SCloseFrame.md) - [Interface: Serializer](https://super-line.dogar.biz/reference/@super-line/core/interfaces/Serializer.md) - [Interface: SErrFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SErrFrame.md) - [Interface: ServerMessageDef](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ServerMessageDef.md) - [Interface: ServerRequestDef](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ServerRequestDef.md) - [Interface: ServerStore](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ServerStore.md) - [Interface: ServerTransport](https://super-line.dogar.biz/reference/@super-line/core/interfaces/ServerTransport.md) - [Interface: SOpenFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SOpenFrame.md) - [Interface: SReadFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SReadFrame.md) - [Interface: SReqFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SReqFrame.md) - [Interface: SResFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SResFrame.md) - [Interface: StoreChange](https://super-line.dogar.biz/reference/@super-line/core/interfaces/StoreChange.md) - [Interface: SubFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SubFrame.md) - [Interface: SWriteFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/SWriteFrame.md) - [Interface: UnsubFrame](https://super-line.dogar.biz/reference/@super-line/core/interfaces/UnsubFrame.md) ##### Type Aliases - [Type Alias: AccessRules](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/AccessRules.md) - [Type Alias: AnyData\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/AnyData.md) - [Type Alias: AuthOutcome](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/AuthOutcome.md) - [Type Alias: ClientFrame](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ClientFrame.md) - [Type Alias: ClientInput\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ClientInput.md) - [Type Alias: DataOf\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/DataOf.md) - [Type Alias: EmitData\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/EmitData.md) - [Type Alias: ErrorCode](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ErrorCode.md) - [Type Alias: EventData\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/EventData.md) - [Type Alias: Events\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/Events.md) - [Type Alias: Frame](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/Frame.md) - [Type Alias: InferIn\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/InferIn.md) - [Type Alias: InferOut\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/InferOut.md) - [Type Alias: InspectorEvent](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/InspectorEvent.md) - [Type Alias: MessageFlavor](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/MessageFlavor.md) - [Type Alias: Output\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/Output.md) - [Type Alias: Principal](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/Principal.md) - [Type Alias: Requests\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/Requests.md) - [Type Alias: RoleOf\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/RoleOf.md) - [Type Alias: RoleRequests\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/RoleRequests.md) - [Type Alias: RoleTopics\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/RoleTopics.md) - [Type Alias: Schema](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/Schema.md) - [Type Alias: SchemaConverter](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/SchemaConverter.md) - [Type Alias: ServerEntry](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ServerEntry.md) - [Type Alias: ServerFrame](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ServerFrame.md) - [Type Alias: ServerInput\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ServerInput.md) - [Type Alias: ServerMessages\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ServerMessages.md) - [Type Alias: ServerRequests\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/ServerRequests.md) - [Type Alias: SharedEvents\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/SharedEvents.md) - [Type Alias: SharedRequests\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/SharedRequests.md) - [Type Alias: SharedServerRequests\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/SharedServerRequests.md) - [Type Alias: SharedTopics\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/SharedTopics.md) - [Type Alias: SuperLineErrorCode](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/SuperLineErrorCode.md) - [Type Alias: Topics\](https://super-line.dogar.biz/reference/@super-line/core/type-aliases/Topics.md) ##### Variables - [Variable: INSPECTOR\_ROLE](https://super-line.dogar.biz/reference/@super-line/core/variables/INSPECTOR_ROLE.md) - [Variable: INSPECTOR\_SUBPROTOCOL](https://super-line.dogar.biz/reference/@super-line/core/variables/INSPECTOR_SUBPROTOCOL.md) - [Variable: InspectorContract](https://super-line.dogar.biz/reference/@super-line/core/variables/InspectorContract.md) - [Variable: jsonSerializer](https://super-line.dogar.biz/reference/@super-line/core/variables/jsonSerializer.md) - [Variable: PROTOCOL](https://super-line.dogar.biz/reference/@super-line/core/variables/PROTOCOL.md) ##### Functions - [Function: classifyContract()](https://super-line.dogar.biz/reference/@super-line/core/functions/classifyContract.md) - [Function: defineContract()](https://super-line.dogar.biz/reference/@super-line/core/functions/defineContract.md) - [Function: validate()](https://super-line.dogar.biz/reference/@super-line/core/functions/validate.md) - [Function: validateSync()](https://super-line.dogar.biz/reference/@super-line/core/functions/validateSync.md) #### @super-line/react ##### Interfaces - [Interface: RequestState\](https://super-line.dogar.biz/reference/@super-line/react/interfaces/RequestState.md) ##### Functions - [Function: createSuperLineHooks()](https://super-line.dogar.biz/reference/@super-line/react/functions/createSuperLineHooks.md) #### @super-line/server ##### Classes - [Class: Conn\](https://super-line.dogar.biz/reference/@super-line/server/classes/Conn.md) - [Class: MemoryBus](https://super-line.dogar.biz/reference/@super-line/server/classes/MemoryBus.md) ##### Interfaces - [Interface: BusMeta](https://super-line.dogar.biz/reference/@super-line/server/interfaces/BusMeta.md) - [Interface: ClusterView](https://super-line.dogar.biz/reference/@super-line/server/interfaces/ClusterView.md) - [Interface: ConnTarget\](https://super-line.dogar.biz/reference/@super-line/server/interfaces/ConnTarget.md) - [Interface: LocalView](https://super-line.dogar.biz/reference/@super-line/server/interfaces/LocalView.md) - [Interface: MiddlewareInfo](https://super-line.dogar.biz/reference/@super-line/server/interfaces/MiddlewareInfo.md) - [Interface: RoleLens\](https://super-line.dogar.biz/reference/@super-line/server/interfaces/RoleLens.md) - [Interface: Room\](https://super-line.dogar.biz/reference/@super-line/server/interfaces/Room.md) - [Interface: ServerStoreHandle](https://super-line.dogar.biz/reference/@super-line/server/interfaces/ServerStoreHandle.md) - [Interface: SuperLineServer\](https://super-line.dogar.biz/reference/@super-line/server/interfaces/SuperLineServer.md) - [Interface: SuperLineServerOptions\](https://super-line.dogar.biz/reference/@super-line/server/interfaces/SuperLineServerOptions.md) - [Interface: UserTarget\](https://super-line.dogar.biz/reference/@super-line/server/interfaces/UserTarget.md) ##### Type Aliases - [Type Alias: AuthResult\](https://super-line.dogar.biz/reference/@super-line/server/type-aliases/AuthResult.md) - [Type Alias: Handlers\](https://super-line.dogar.biz/reference/@super-line/server/type-aliases/Handlers.md) - [Type Alias: Middleware\](https://super-line.dogar.biz/reference/@super-line/server/type-aliases/Middleware.md) ##### Functions - [Function: createInMemoryAdapter()](https://super-line.dogar.biz/reference/@super-line/server/functions/createInMemoryAdapter.md) - [Function: createSuperLineServer()](https://super-line.dogar.biz/reference/@super-line/server/functions/createSuperLineServer.md) - [Function: resolvePrincipal()](https://super-line.dogar.biz/reference/@super-line/server/functions/resolvePrincipal.md) ### Other - [ADR-0001: Use Automerge (not Yjs) as the CRDT for synced state](https://super-line.dogar.biz/adr/0001-automerge-over-yjs-for-synced-scene-state.md) - [ADR-0002: Use Yjs (via super-store) as the CRDT binding, superseding Automerge](https://super-line.dogar.biz/adr/0002-yjs-via-super-store-over-automerge.md) - [ADR-0003: Stores are off-contract and untyped, outside the typed-contract spine](https://super-line.dogar.biz/adr/0003-stores-are-off-contract-and-untyped.md) - [Documentation](https://super-line.dogar.biz/reference.md) - [Examples](https://super-line.dogar.biz/examples.md) - [Product](https://super-line.dogar.biz/PRODUCT.md)