Hypercast is a new real-time open source transport for serialized data over websockets. It's low-level and very small, so it's ideal for building real-time and multiplayer applications.
Hypercast is a very simple pub/sub interface for one-to-many data transmission. Events are handled at the edge by a Hypercast instance of your choosing. You can even self host an instance in a matter of minutes.
A Hypercast client is a simple event emitter. If you've used jQuery or Node.js events, it'll look familiar.
import { Operator } from 'hypercast/client'
enum Event {
Connect = 'connect',
Message = 'message',
type Events = {
type: Event.Connect
data: { name: string },
} | {
type: Event.Message,
data: { value: string },
const operator = new Operator<Events>('...')
const { topic } = await operator.createTopic()
const hypercast = operator.connect(topic)
hypercast.on('message', ({ type, data }) => {
switch (type) {
case Event.Connect:
case Event.Message:
setMessages(state => [...state, data.value])
const ack = hypercast.send({
type: Event.Connect,
data: { name: 'Jane' },
await ack
Last modified 11mo ago