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 updated