Documentation / @super-line/server
@super-line/server
The server for super-line — end-to-end typesafe WebSockets for TypeScript. Implements a shared contract over ws: role-keyed handlers, rooms, topics, middleware, lifecycle hooks, and node-to-node messaging.
bash
pnpm add @super-line/core @super-line/server @super-line/transport-websocket zodts
import http from 'node:http'
import { createSuperLineServer } from '@super-line/server'
import { webSocketServerTransport } from '@super-line/transport-websocket'
import { api } from './contract'
const server = http.createServer()
const srv = createSuperLineServer(api, {
transports: [webSocketServerTransport({ server })],
authenticate: (h) => ({ role: 'user' as const, ctx: { id: '1' } }), // throw -> 401
})
srv.implement({
user: {
send: async ({ text }, ctx, conn) => {
conn.emit('message', { text })
return { id: crypto.randomUUID() }
},
},
})
server.listen(3000)Authenticate receives the Handshake ({ transport, headers, query, peer?, raw }) and returns { role, ctx }; cross-role calls are rejected with NOT_FOUND. The wire is carried by a pluggable transport — @super-line/transport-websocket provides the WS transport shown above; other transports (HTTP/SSE, libp2p) are available — see the Transports guide. Scale across processes with @super-line/adapter-redis.
- 📖 Docs: https://mertdogar.github.io/super-line/
- 📚 Guides: roles & auth, events & rooms
- 📕 API reference: https://mertdogar.github.io/super-line/reference/
- 🧩 Source: https://github.com/mertdogar/super-line
MIT © Mert
Classes
Interfaces
- BusMeta
- ClusterView
- ConnTarget
- LocalView
- MiddlewareInfo
- RoleLens
- Room
- ServerStoreHandle
- SuperLineServer
- SuperLineServerOptions
- UserTarget