Iggy.rs - construire du message streaming en Rust
(blog.iggy.rs)Origines
- En avril 2023, la décision a été prise d’apprendre Rust.
- Sur la base d’une expérience des systèmes distribués et de la messagerie, le développement d’une plateforme de message streaming a été lancé.
- L’objectif était de comprendre le fonctionnement interne des systèmes de messagerie et les compromis faits par les développeurs.
- Naissance d’Iggy.rs, avec l’ambition de créer une plateforme de message streaming mettant l’accent sur la vitesse et la légèreté.
Projet
- Au départ, Iggy utilisait le protocole QUIC pour fournir des fonctions de base d’échange de messages.
- Grâce à un prototypage continu et à des améliorations successives, un serveur prenant en charge les écritures/lectures parallèles et des flux indépendants a été mis en place.
- La prise en charge des protocoles TCP et HTTP a été ajoutée, et les performances ont été améliorées via l’optimisation des mécanismes de synchronisation des données.
- Les benchmarks ont confirmé un débit élevé et une faible latence, ce qui a conduit à en faire un projet de long terme.
Équipe
- Iggy est porté par une équipe d’environ 10 membres contribuant à différentes parties du projet.
- Ils participent à divers sous-projets, notamment le serveur core, les SDK, l’interface web et la CLI.
- Des développeurs aux expériences variées, partageant une passion pour la programmation, y contribuent de manière volontaire.
- La participation de contributeurs externes venus du monde entier a renforcé la confiance dans le projet.
Fonctionnalités
- Serveur de message streaming haute performance, durable et basé sur des logs.
- Débit élevé, faible latence et utilisation prévisible des ressources grâce à Rust, un langage compilé.
- Prise en charge de multiples streams, topics, partitions et de divers protocoles de transport.
- API RESTful, SDK clients dans plusieurs langages et travail direct avec des données binaires.
- Fonctions serveur configurables, stockage côté serveur des offsets des consommateurs et prise en charge de plusieurs méthodes de polling des messages.
- Groupes de consommateurs pour garantir l’ordre des messages et l’extension horizontale, avec expiration des messages et déduplication.
- Prise en charge de TLS pour tous les protocoles de transport, chiffrement optionnel des données et support des en-têtes de message.
- CLI intégrée et application de benchmarking pour administrer le serveur de streaming, avec déploiement sous forme de binaire unique.
Feuille de route
- Après son apparition sur la page GitHub Trending, des discussions ont eu lieu avec les utilisateurs autour de l’ajout de nouvelles fonctionnalités.
- L’objectif est d’améliorer les performances et la fiabilité grâce au clustering, à l’I/O bas niveau et à une architecture un thread par cœur.
- Des expérimentations sont prévues autour du mécanisme de consensus Raft, de l’amélioration des opérations d’I/O avec
io_uringet de l’utilisation du runtimemonoio.
Avenir
- L’objectif est de devenir une plateforme de message streaming généraliste et de repousser les limites des systèmes d’exploitation et du matériel.
- Le projet prévoit de proposer une plateforme intégrée facile à utiliser, avec prise en charge de plusieurs langages de programmation, d’une CLI et d’une interface web.
- Il vise à évoluer grâce aux retours et aux idées de la communauté.
Avis de GN⁺
- Iggy.rs est une plateforme de message streaming basée sur Rust, qui vise des performances élevées et une faible latence.
- En tant que projet open source, il continue de croître grâce à la participation et aux contributions volontaires de développeurs du monde entier.
- Son ambition de dépasser les limites de performance des systèmes distribués grâce à des technologies innovantes comme le clustering, l’optimisation des I/O bas niveau et une architecture un thread par cœur est particulièrement intéressante, ce qui en fait un projet très utile pour toute personne intéressée par ce domaine.
1 commentaires
Avis Hacker News