Skip to content

Installation

Install the core runtime, your framework binding if needed, and one adapter. Provider SDKs are peer dependencies: install them alongside their adapters. Packages are ESM and include TypeScript declarations.

Frameworks

ApplicationPackagesSupported peer version
Plain JavaScript or TypeScript@priemskiyyy/simulcastNo framework dependency
React@priemskiyyy/simulcast @priemskiyyy/simulcast-reactReact >=19.2 <20
Vue@priemskiyyy/simulcast @priemskiyyy/simulcast-vueVue >=3.5 <4
Solid@priemskiyyy/simulcast @priemskiyyy/simulcast-solidSolid >=1.8 <2
Svelte@priemskiyyy/simulcast @priemskiyyy/simulcast-svelteSvelte >=5 <6
Expo / React Native@priemskiyyy/simulcast @priemskiyyy/simulcast-reactCompatible React and native provider SDK

Use one framework binding for your application. The core does not depend on React. For native setup, see React Native and Expo.

Adapters

Add @priemskiyyy/simulcast alongside the packages below if it is not installed already.

ProviderPackages to installChannel means
Centrifugo@priemskiyyy/simulcast-centrifugo centrifugeSubscription channel
Pusher Channels@priemskiyyy/simulcast-pusher pusher-jsPublic, private, or presence channel
Ably@priemskiyyy/simulcast-ably ablyRealtime channel
Supabase@priemskiyyy/simulcast-supabase @supabase/realtime-jsBroadcast topic
Socket.IO@priemskiyyy/simulcast-socketio socket.io-clientEvent name
Phoenix@priemskiyyy/simulcast-phoenix phoenixChannel topic
MQTT@priemskiyyy/simulcast-mqtt mqttTopic filter, including wildcards
PartyKit@priemskiyyy/simulcast-partykit partysocketRoom
WebSocket@priemskiyyy/simulcast-websocketYour protocol's channel identifier
Server-Sent Events@priemskiyyy/simulcast-sseOne EventSource URL
BroadcastChannel@priemskiyyy/simulcast-broadcast-channelSame-origin channel name

For example, React with Pusher:

sh
npm install @priemskiyyy/simulcast @priemskiyyy/simulcast-react @priemskiyyy/simulcast-pusher pusher-js
sh
pnpm add @priemskiyyy/simulcast @priemskiyyy/simulcast-react @priemskiyyy/simulcast-pusher pusher-js
sh
yarn add @priemskiyyy/simulcast @priemskiyyy/simulcast-react @priemskiyyy/simulcast-pusher pusher-js
sh
bun add @priemskiyyy/simulcast @priemskiyyy/simulcast-react @priemskiyyy/simulcast-pusher pusher-js

Adapter setup explains configuration and state mappings. A shared subscription API does not make providers interchangeable at the protocol level: channel names, authentication, payload formats, and recovery remain provider-specific.

Optional packages

sh
pnpm add -D @priemskiyyy/simulcast-devtools @priemskiyyy/simulcast-codegen typescript
  • Devtools mounts a browser inspector. Framework wrappers are separate imports such as @priemskiyyy/simulcast-devtools/react. The Svelte devtools wrapper requires Svelte >=5.29 <6, while the framework binding itself supports >=5 <6.
  • Code generation generates framework hooks from your event map.
  • Application testing uses @priemskiyyy/simulcast/mock, included in the core.

Runtime requirements

WebSocket, SSE, and BroadcastChannel adapters use runtime APIs. Browser availability and native SDK support depend on the environment you target. Node-based SSE clients need an EventSource implementation; the SSE adapter accepts it through its options. Do not mount the DOM-based devtools in React Native.

Developing this repository requires Node 22.18 or newer and the pnpm version in package.json. That tooling requirement is separate from the published runtime's framework peer requirements.

Released under the MIT License.