Iggy.rs - Rustで構築するメッセージストリーミング
(blog.iggy.rs)起源
- 2023年4月、Rustの学習を決意。
- 分散システムとメッセージングの経験をもとに、メッセージストリーミングプラットフォームの開発を決定。
- メッセージングシステムの内部動作原理と、開発者たちのトレードオフを理解することが目的。
- Iggy.rsの誕生、速度と軽量性を重視するメッセージストリーミングプラットフォームを目標に設定。
プロジェクト
- 初期のIggyはQUICプロトコルを使用し、基本的なメッセージ交換機能を提供。
- 継続的なプロトタイピングと改善を通じて、並列書き込み/読み取りと独立したストリームをサポートするサーバーを実装。
- TCPとHTTPプロトコルのサポート追加、およびデータ同期メカニズムの最適化によって性能を向上。
- ベンチマーキングにより高いスループットと低レイテンシを確認し、長期プロジェクトへ移行。
チーム
- Iggyは約10人のメンバーで構成されたチームがさまざまな部分に貢献。
- コアサーバー、SDK、Web UI、CLIなど多様なプロジェクトに参加。
- プログラミングへの情熱を共有する、さまざまな経験を持つ開発者たちが自発的に参加。
- 世界中からの外部コントリビューターの参加によって、プロジェクトへの自信が高まる。
機能
- 高性能で持続可能なログベースのメッセージストリーミングサーバー。
- 高スループット、低レイテンシ、Rustコンパイル言語による予測可能なリソース使用。
- 複数のストリーム、トピック、パーティションのサポートと、多様な転送プロトコルのサポート。
- RESTful API、各種言語向けクライアントSDK、バイナリデータの直接操作。
- サーバー機能の構成が可能で、コンシューマーオフセットのサーバー保存や、メッセージポーリングのさまざまな方法をサポート。
- メッセージ順序と水平スケーリングのためのコンシューマーグループ、メッセージ有効期限と重複排除機能。
- すべての転送プロトコルに対するTLSサポート、オプションのデータ暗号化、およびメッセージヘッダーのサポート。
- ストリーミングサーバー管理のための組み込みCLIとベンチマーキングアプリ、単一バイナリでの配布。
ロードマップ
- GitHubのトレンドページに登場した後、ユーザーたちと機能追加について議論。
- クラスタリング、低レベルI/O、コアごとのスレッドアーキテクチャによる性能と信頼性の向上を目標。
- Raftコンセンサスメカニズムの実験、io_uringによるI/O処理の改善、monoioランタイムの使用を計画。
未来
- 汎用的なメッセージストリーミングプラットフォームと、OSおよびハードウェアの限界に挑戦することが目標。
- 使いやすい統合プラットフォームとして、さまざまなプログラミング言語、CLI、Web UIをサポートする計画。
- コミュニティからのフィードバックとアイデアを通じた発展を目指す。
GN⁺の意見
- Iggy.rsはRustベースのメッセージストリーミングプラットフォームで、高性能と低レイテンシを目指している。
- オープンソースプロジェクトとして、世界中の開発者による自発的な参加と貢献を通じて継続的に成長中。
- クラスタリング、低レベルI/O最適化、コアごとのスレッドアーキテクチャのような革新的技術を通じて、分散システムの性能限界を超えようとする野心的な目標が興味深く、この分野に関心のある人にとって非常に有益なプロジェクトである。
1件のコメント
Hacker Newsの意見