Send ephemeral messages, track and synchronize shared state, and listen to Postgres changes all over WebSockets.
Examples
·
Request Features
·
Report Bugs
| Features | v1 | v2 | Status |
|---|---|---|---|
| Postgres Changes | ✔ | ✔ | GA |
| Broadcast | ✔ | GA | |
| Presence | ✔ | GA |
This repository focuses on version 2 but you can still access the previous version's code and Docker image. For the latest Docker images go to https://hub.docker.com/r/supabase/realtime.
The codebase is under heavy development and the documentation is constantly evolving. Give it a try and let us know what you think by creating an issue. Watch releases of this repo to get notified of updates. And give us a star if you like it!
This is a server built with Elixir using the Phoenix Framework that enables the following functionality:
- Broadcast: Send ephemeral messages from client to clients with low latency.
- Presence: Track and synchronize shared state between clients.
- Postgres Changes: Listen to Postgres database changes and send them to authorized clients.
For a more detailed overview head over to Realtime guides.
The server does not guarantee that every message will be delivered to your clients so keep that in mind as you're using Realtime.
You can check out the Supabase UI Library Realtime components and the repository of the multiplayer.dev demo app.
Start with DEVELOPERS.md for local setup, mise tasks, and example workflows.
Once your environment is up and running, check out the following docs to customize the server and troubleshooting:
- ENVS.md - detailed list of all environment variables
- ERROR_CODES.md - list of operational codes
- OBSERVABILITY_METRICS.md - monitoring information
See CONTRIBUTING.md
See supabase/CODE_OF_CONDUCT.md
This repo is licensed under Apache 2.0.
- Phoenix -
Realtimeserver is built with the amazing Elixir framework. - Phoenix Channels JavaScript Client - @supabase/realtime-js client library heavily draws from the Phoenix Channels client library.