Skip to content

Latest commit

 

History

History
131 lines (103 loc) · 4.91 KB

README.md

File metadata and controls

131 lines (103 loc) · 4.91 KB

💥 Ignition - Robust Real-Time Event Streaming Service in Rust 🦀

Share on X Share on Facebook Share on LinkedIn Share on Reddit Share on Telegram

Overview

This project was developed during my internship at Dynamite. It serves as a MonoRepo for all the Rust backend components used in the project.

Other Components:


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:

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

My First Board


Architecture

  • Hobby and Pro requests are handled by the 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 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, Pusher, 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

docker pull axnjr/ignition_shared:v5
docker pull axnjr/ignition_wssd

Feel free to explore and contribute!