Rodelar is an open-source event streaming server inspired by services like Ably. It enables real-time data streaming and messaging over WebSocket connections, allowing you to build fast, scalable, and reliable event-driven applications.
With Rodelar, you can easily publish and subscribe to event streams in your system, using a simple and intuitive API for both Go and JavaScript/TypeScript environments (and any language you want).
- Real-time event streaming: Publish and subscribe to events in real-time over WebSocket connections.
- Lightweight and fast: Minimal client footprint, designed for performance and scalability.
- Multi-language support: Available for Go and JavaScript/TypeScript environments.
- Custom event handlers: Easily register and manage event-specific callbacks.
- Simple API: Effortless integration with your existing systems.
- Live data feeds: Power real-time dashboards, live sports scores, or financial tickers.
- Collaborative applications: Enable live editing, messaging, and file-sharing in collaborative tools.
- IoT device communication: Stream data between IoT devices and centralized systems in real time.
- Gaming: Facilitate real-time interactions between players, leaderboards, and game events.
import { RodelarClient } from 'rodelar/core';
const client = new RodelarClient({ url: 'ws://localhost:3000/ws/' });
client.subscribe({
queue: 'updates',
callback: (data) => {
console.log('Received event:', data);
},
});
client.publish({
event: 'updates',
payload: { message: 'Hello, World!' },
});
package main
import (
"fmt"
"log"
"github.com/overal-x/rodelar-go-sdk"
)
func main() {
client, err := rodelar.NewRodelarClient(rodelar.RodelarClientConfig{Url: "ws://localhost:3000/ws/"})
if err != nil {
log.Fatal(err)
}
err = client.Subscribe(rodelar.SubscribeArgs{
Event: "updates",
Callback: func(m rodelar.Message) {
fmt.Println("Received event:", m)
},
})
if err != nil {
log.Fatal(err)
}
}
Rodelar provides a powerful, open-source alternative to commercial event-streaming platforms like Ably and Pusher. It offers flexibility, control, and extensibility for developers building real-time applications without the overhead of closed ecosystems.
Start building real-time applications today with Rodelar, and take control of your event streams!
- Golang
- TypeScript
- and we look forward to your implementations too 😉
Requirements
- Bun
- Redis Server (or use ./docker-compose.yaml
Install dependencies and start Elysia server
bun install
bun run dev
The WebSocket connection should be at ws://localhost:3000/ws/
We recommend creating a fork of this project
Requirements
- Bun
- Redis Server
- Clone the forked repo
- Install dependecies
- Add
.env
container Redis credentials - Run
bun run build
- Start the executable,
./rodelar
For custom other build options, please refer to Bun's bundler documentation.
Requirements
- Docker
- Redis Server
docker pull ghcr.io/overal-x/rodelar
docker run ghcr.io/overal-x/rodelar \
-p 3000:3000 \
-e REDIS_HOST=redis.host.local \
-e REDIS_PORT=6379
-e REDIS_USERNAME=username
-e REDIS_PASSWORD=password
We welcome contributions! Feel free to submit issues, feature requests, or pull requests to improve Rodelar.