Iggy.rs – Message Streaming mit Rust aufbauen
(blog.iggy.rs)Ursprung
- Im April 2023 fiel die Entscheidung, Rust zu lernen.
- Auf Basis von Erfahrungen mit verteilten Systemen und Messaging fiel die Entscheidung, eine Message-Streaming-Plattform zu entwickeln.
- Ziel war es, die interne Funktionsweise von Messaging-Systemen und die Trade-offs von Entwicklern zu verstehen.
- Daraus entstand Iggy.rs, mit dem Ziel einer Message-Streaming-Plattform, die Geschwindigkeit und Leichtgewichtigkeit betont.
Projekt
- Das frühe Iggy bot grundlegende Funktionen für den Nachrichtenaustausch auf Basis des QUIC-Protokolls.
- Durch kontinuierliches Prototyping und Verbesserungen wurde ein Server mit parallelem Schreiben/Lesen und Unterstützung unabhängiger Streams umgesetzt.
- Durch die zusätzliche Unterstützung für TCP- und HTTP-Protokolle sowie die Optimierung des Datensynchronisierungsmechanismus wurde die Performance verbessert.
- Benchmarking bestätigte hohen Durchsatz und geringe Latenz, woraufhin das Projekt zu einem langfristigen Vorhaben wurde.
Team
- Iggy wird von einem Team mit rund 10 Mitgliedern getragen, das zu verschiedenen Bereichen beiträgt.
- Beteiligt sind Projekte wie Core-Server, SDK, Web-UI und CLI.
- Entwickler mit unterschiedlichen Hintergründen und gemeinsamer Leidenschaft fürs Programmieren beteiligen sich freiwillig.
- Die Mitarbeit externer Contributor aus aller Welt stärkte das Vertrauen in das Projekt.
Funktionen
- Hochperformanter, langlebiger, logbasierter Message-Streaming-Server.
- Hoher Durchsatz, geringe Latenz und vorhersehbare Ressourcennutzung dank der kompilierten Sprache Rust.
- Unterstützung für mehrere Streams, Topics und Partitionen sowie verschiedene Transportprotokolle.
- RESTful API, Client-SDKs für verschiedene Sprachen und direkte Arbeit mit Binärdaten.
- Konfigurierbare Serverfunktionen, serverseitige Speicherung von Consumer-Offsets und Unterstützung verschiedener Methoden zum Polling von Nachrichten.
- Consumer-Gruppen für Nachrichtenreihenfolge und horizontale Skalierung sowie Funktionen für Nachrichtenablauf und Deduplizierung.
- TLS-Unterstützung für alle Transportprotokolle, optionale Datenverschlüsselung und Unterstützung für Message-Header.
- Integrierte CLI und Benchmarking-App zur Verwaltung des Streaming-Servers, Bereitstellung als einzelne Binärdatei.
Roadmap
- Nach dem Erscheinen auf der GitHub-Trending-Seite wurden mit Nutzern Diskussionen über zusätzliche Funktionen geführt.
- Ziel ist es, Performance und Zuverlässigkeit durch Clustering, Low-Level-I/O und eine Thread-pro-Core-Architektur zu verbessern.
- Geplant sind Experimente mit dem Raft-Konsensmechanismus, Verbesserungen bei I/O-Operationen mit
io_uringund der Einsatz dermonoio-Runtime.
Zukunft
- Ziel ist eine Message-Streaming-Plattform für allgemeine Einsatzzwecke, die die Grenzen von Betriebssystemen und Hardware herausfordert.
- Geplant ist eine einfach zu nutzende integrierte Plattform mit Unterstützung für verschiedene Programmiersprachen, CLI und Web-UI.
- Die Weiterentwicklung soll durch Feedback und Ideen aus der Community vorangetrieben werden.
GN⁺-Meinung
- Iggy.rs ist eine Rust-basierte Message-Streaming-Plattform, die auf hohe Performance und geringe Latenz abzielt.
- Als Open-Source-Projekt wächst sie kontinuierlich durch freiwillige Beteiligung und Beiträge von Entwicklern aus aller Welt.
- Das ambitionierte Ziel, mit innovativen Technologien wie Clustering, Low-Level-I/O-Optimierung und einer Thread-pro-Core-Architektur die Performance-Grenzen verteilter Systeme zu überwinden, ist besonders spannend und macht das Projekt für Interessierte in diesem Bereich sehr lohnend.
1 Kommentare
Hacker-News-Kommentare