3 ポイント 投稿者 GN⁺ 2024-01-06 | 1件のコメント | WhatsAppで共有

起源

  • 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件のコメント

 
GN⁺ 2024-01-06
Hacker Newsの意見
  • ソフトウェア分野に最初に関心を持ったきっかけはお金ではなく、共通の目標に向かって努力する人々の理想だった。プロジェクトの幸運を祈るとともに、代替案との比較を通じてこのプロジェクトの立ち位置をよりよく理解できることを願う。
  • このブログ記事が気に入った。著者は謙虚で誠実、そして建設的なプロジェクトリーダーに見える。プロジェクトの成功を祈る。
  • JetStreamの直接的な競合製品のようであり、1年未満の作業としては印象的な進展を見せている。
  • Fluvioの起源をあらためて考えさせられる投稿だった。さまざまな分野でデータ中心のアプリケーションと数十年にわたって関わってきた小規模チームが、RustとWebAssemblyを使ったデータストリーミングに興奮している。
  • KafkaやFluvio(Rustで書かれたもう1つのKafka競合)との比較がはっきりしないが、RabbitMQのようなメッセージキューなのかもしれない。
  • 数年前に友人と一緒にGoで似たようなものを作ったことがある。
  • Rustを学んだあとで試してみたいし、サイトの美しさも気に入っている。
  • プロジェクトは興味深いが、試す前にサーバーインスタンスを複数動かす方法と、サーバー間でのファイルシステムの相互作用がどう機能するのかを理解する必要がある。
  • KeyDBのストリーミングと比べた場合の利点として、より堅牢な永続性が考えられる。
  • monoioの選択には驚いた。nightlyコンパイラの使用が必要で、プロジェクトの保守という観点では良い選択ではないと思う。