https://github.com/axnjr/ignite
A Robust Real-Time Event Streaming, Software and Infrastructure as a Service Written In Rust.
https://github.com/axnjr/ignite
aws aws-ec2 events iaas kafka notifications real-time rust rust-lang saas sync websocket
Last synced: 3 months ago
JSON representation
A Robust Real-Time Event Streaming, Software and Infrastructure as a Service Written In Rust.
- Host: GitHub
- URL: https://github.com/axnjr/ignite
- Owner: Axnjr
- Created: 2024-03-12T01:45:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-23T09:20:14.000Z (9 months ago)
- Last Synced: 2025-01-23T10:25:22.041Z (9 months ago)
- Topics: aws, aws-ec2, events, iaas, kafka, notifications, real-time, rust, rust-lang, saas, sync, websocket
- Language: Rust
- Homepage: https://ignition.dev(comming soon)
- Size: 183 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💥 Ignition - Robust Real-Time Event Streaming Service in Rust 🦀
[](https://x.com/intent/tweet?text=Check%20out%20this%20project%20on%20GitHub:%20https://github.com/Axnjr/Ignite%20%23OpenIDConnect%20%23Security%20%23Authentication)
[](https://www.facebook.com/sharer/sharer.php?u=https://github.com/Axnjr/Ignite)
[](https://www.linkedin.com/sharing/share-offsite/?url=https://github.com/Axnjr/Ignite)
[](https://www.reddit.com/submit?title=Check%20out%20this%20project%20on%20GitHub:%20https://github.com/Axnjr/Ignite)
[](https://t.me/share/url?url=https://github.com/Axnjr/Ignite&text=Check%20out%20this%20project%20on%20GitHub)# Overview
I worked on this project during my internship at **Dynamite** in the notifications team, later I decided to continue the project as SaaS side hustle. This repository serves as a **MonoRepo** for all the `Rust` components involved in the project.
### Other Components:
- [**The Web App**](https://github.com/Axnjr/Ignition-Web)
- [**Client Pub-Sub SDK (JavaScript)**](https://github.com/Ignition-Dev/Js-Sdk)
- [**Test Playground**](https://github.com/Ignition-Dev/Js-Sdk/tree/main/playground)
- [**Lambda Functions**](https://github.com/Axnjr/dailyCronJob)---
# Example Usage
Users need to get their `API_KEY` by creating their account. Hobby users get 100 daily requests and 10 con-current connections to exceed this limit users can subscribe to other paid plans. To interact with `Ignition` you can use the language specific SDK'S, untill now only JS SDK is available 😅, below is sample of how to use it:
```js
import Ignition from "ignition-js-sdk";let ws = new Ignition({
url: process.env.IGNITION_WSS_URL,
apiKey: process.env.IGNITION_API_KEY,
encryptionKey:"RADHA" // IF YOU WANT TO ENCRYPT YOUR MESSAGES. MESSAGES NEED TO BE DECRYPTED USING THE SAME KEY ON THE OTHER END !
})ws.subscribe("test") // eventName
ws.on("test", (data) => { // eventName, callback
console.log("message recived by `b`:",data)
})ws.emit("test", "test", "hello world") // eventName: String, channelName: String, message: Any
ws.emit("test", "test", {
"Name": "Axn",
"Age": 21,
"Occupation": "SDE"
})ws.emit("tes", "test", 56);
```# Data flow diagram
---
# Architecture
- **Hobby** and **Pro** requests are handled by the [`ignition_shared_v5`](https://github.com/Axnjr/Ignite/tree/main/ignition_shared_v5) container, which is deployed using **AWS Elastic Container Service (ECS)**.
- For **Enterprise** clients, a dedicated instance is provisioned with the [`dedicated_v2`](https://github.com/Axnjr/Ignite/tree/main/WssDedicated) container for optimal performance. 💥---
# Subscription Model
Plan
Daily Requests
Concurrent Connections
Additional Features
Hobby (Free)
Up to 100
10
—
Pro (Paid)
Up to 10,000
500
—
Enterprise
Unlimited
Unlimited
- No rate-limiting or authentication overhead.
- Enhanced data security and governance.
- Minimal latency (25ms).
- Custom logging and configuration.
---
# Features
- Scalable real-time event streaming built with **Rust**.
- Data security and privacy using `AES Encryption`.
- Designed for high performance and low latency.
- Flexible subscription plans for various use cases.
- Easily deployable and maintainable with AWS ECS.
- Most affordable real-time service compared from: [Ably](https://ably.com/), [Pusher](https://pusher.com/), etc
---
# Upcomming features
- `XMPP Protocol` (What whatsapp uses) based event transmision
- `WebRTC` implementation for audio, video data.
- `SDK's` in other languages like Python, Java, Rust, Golang, Php, Ruby, etc ..
# Docker Hub links
#### [**Public Shared Server**](https://hub.docker.com/r/axnjr/ignition_shared)
```
docker pull axnjr/ignition_shared:v5
```
#### [**Dedicated Private Server**](https://hub.docker.com/r/axnjr/ignition_wssd)
```
docker pull axnjr/ignition_wssd
```
# Feel free to explore and contribute!