Awesome Streaming
Streamingを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
エンジンとプラットフォーム
- Aeron
- 信頼性の高いUDPユニキャスト、マルチキャスト、IPCメッセージ転送。
- Apache Apex
- 大規模データストリームおよびバッチ処理向けの統合プラットフォーム
- Apache Flink
- 有限/無限ストリーム上でステートフルな計算を実行する分散エンジン。
- Apache Heron
- Twitterで開発された元の分散かつ障害耐性のストリーム処理エンジン。
- Apache Kafka
- 高性能データパイプラインおよびアプリケーション向けの分散イベントストリーミングプラットフォーム
- Apache Pulsar
- 分散型のパブリッシュ・サブスクリプションメッセージおよびイベントストリーミングプラットフォーム
- Apache RocketMQ
- イベント駆動アプリケーション向けのクラウドネイティブなメッセージおよびストリーミングプラットフォーム
- Apache Samza
- Apache Kafkaに基づく分散ストリーム処理フレームワークで、スタンドアローンおよびYARNのデプロイオプションを提供
- Apache Spark Streaming
- Apache Spark上でスケーラブルかつ障害耐性のストリーム処理
- Apache Storm
- 無限ストリームのデータを信頼性高く処理するための分散リアルタイム計算システム
- Apache StreamPipes
- インダストリアルIoT向けのセルフサービスプラットフォームで、データストリームの接続、分析、探索を行う
- ArkFlow
- 高性能ストリーム処理エンジンで、拡張可能なソース、プロセッサ、シンクを提供
- Arroyo
- 無限データ上の状態を持つSQL計算に適した分散ストリーム処理エンジン
- AthenaX
- Uberが開発し、現在は廃止されたSQLベースのストリーミング分析プラットフォーム。
- AutoMQ
- 永続データをオブジェクトストレージへ保存する、ディスクレスのKafka互換ストリーミングプラットフォーム。
- Bytewax
- コミュニティが維持するPythonフレームワークで、Rustベースの分散エンジンで状態を持つストリーム処理を提供
- eKuiper
- リソース制限されたIoTエッジデバイス向けの軽量データストリーム処理エンジン
- Esper
- 複雑イベント処理、ストリーミングSQL、イベントシリーズ分析エンジン
- Fluvio
- コンポジブルで状態を持つデータストリーミングシステムで、プログラム可能なインライン計算を提供
- Gazette
- クラウドストレージをバックアップしたストリーミングインフラで、SQL、バッチ、ミリ秒遅延ストリーム処理を統合
- Gearpump
- Akkaに基づく軽量なリアルタイム分散ストリーミングエンジン
- hailstorm
- Stormをベースにした、正確に1回実行(exactly-once)の意味を持つ分散ストリーミング処理
- Hazelcast Jet
- 開発がHazelcast Platformに移行したストリームおよびバッチ処理エンジン
- HStreamDB
- IoTデータのストレージとリアルタイム処理に特化したクラウドネイティブストリーミングデータベース
- ksqlDB
- ストリーム処理アプリケーションに特化したソース公開データベース
- LaminarDB
- Apache ArrowおよびDataFusionに基づく埋め込み型ストリーミングSQLエンジン
- LightSaber
- ウインドウ集計にコード生成を用いたマルチコアストリーミング処理エンジン
- LogDevice
- Facebookのアーカイブされた順序データ用分散ストレージシステム
- Maki Nage
- KafkaおよびReactiveXをベースにしたデータサイエンティスト向けストリーミング処理フレームワーク
- Mantis
- Netflixが開発したリアルタイムかつ運用中心のストリーミング処理アプリケーション構築プラットフォーム
- Materialize
- 変化するデータ上での継続的に更新されるビューを維持するインクリメンタルSQLエンジン
- Metaq
- Taobaoの分散メッセージングシステム
- mupd8 (Muppet)
- ファストモーブデータストリームの処理に特化したMapReduceスタイルのフレームワーク
- NATS Streaming
- 非推奨のディスクベースメッセージングシステムで、NATS JetStreamに置き換えられている
- NebulaStream
- クラウド・エッジ・センサー環境向けデータ管理システム
- NSQ
- スケールを考慮したリアルタイム分散メッセージングプラットフォーム
- Numaflow
- Kubernetesネイティブで、言語に依存しないスケーラブルなイベント駆動アプリケーションプラットフォーム
- Onyx
- 分散型・マスタレス・障害耐性のあるデータ処理プラットフォーム
- PipelineDB
- 未維持のPostgreSQL拡張で、時系列データに対する継続的なSQL集計を実現
- Proton
- ClickHouseをベースにした統合ストリーミングおよび歴史データ分析データベース
- Redpanda
- ZooKeeperやJVMなしでKafka APIと互換性のあるストリーミングデータプラットフォーム
- RisingWave
- イベント駆動アプリケーション、リアルタイムETL、継続的な分析向けのPostgreSQLと互換性のあるストリーミングデータベース
- S4
- 連続した無限データストリームの処理を行うための退役した分散プラットフォーム
- SABER
- ウィンドウベースのハイブリッドCPU/GPUストリーミング処理エンジン
- Scramjet Cloud Platform
- エッジ、サーバー、クラウドインフラでデータ処理プログラムを実行・管理するための分散ランタイム
- SensorBee
- IoT向けに停止した軽量ストリーミング処理エンジン
- Siddhi
- ストリーミングSQLおよび複雑イベント処理エンジン
- SPQR
- パイプラインを介して高量データストリームを処理するための動的フレームワーク
- Squall
- Apache Stormに基づくオンラインSQLクエリ処理エンジン
- StreamCQL
- Stormベースのリアルタイム計算用継続クエリ言語
- Teknek
- インタラクティブなストリームオペレータ言語シェルを備えたストリーミング処理プラットフォーム
- Tigon
- HadoopおよびHBaseに基づく高スループットリアルタイムストリーミング処理フレームワーク
- Trill
- Microsoft Researchから提供された時系列およびストリーミングデータの単一ノードクエリプロセッサ
- Wally
- かつてWallarooと呼ばれた分散ストリーミング処理フレームワーク
- Wingfoil
- レイテンシが重要なシステム向けのグラフベースストリーミング処理エンジン
ライブラリ、SDK、プログラミングモデル
- Akka
- JVM上で並列・分散・耐障害アプリケーションを実行・管理するためのツールキットおよびランタイム
- Akka Streams
- Akkaアクタに基づく反応型ストリーム実装
- Apache Beam
- バッチおよびストリーミングデータ処理向けの統一プログラミングモデルおよび言語特定のSDK
- Apache Edgent
- ゲートウェイおよびエッジデバイス上のストリーミング分析向けに退役したプログラミングモデルおよびランタイム
- Apache Kafka Streams
- Apache Kafkaに含まれるストリーミング処理ライブラリ
- Apache Pekko
- 非同期、分散、耐障害アプリケーション向けオープンソースツールキット。Akka 2.6から分岐したもの。
- Apache SAMOA
- 停用された分散ストリーミング機械学習フレームワーク。
- Apache StormCrawler
- Apache StormをベースとしたスケーラブルなウェブスクレイピングSDK。
- CapyMOA
- データストリーム向けの機械学習ライブラリ。Python APIとMOAバックエンドを備える。
- coast
- Apache Samza上で正確1回データフロー図を構築するためのDSL。
- Daggy
- データストリームの集計およびキャプチャを行うためのユーティリティおよび開発ライブラリ。
- DataSketches
- ストキャスティックストリーミングアルゴリズム(スケッチ)を含むApacheライブラリ。
- FastStream
- Kafka、RabbitMQ、NATS、Redis、MQTTを用いたイベント駆動アプリケーションの構築に用いる非同期フレームワーク。
- Faust
- Kafka Streamsにインスパイアされた、廃止されたPythonストリーム処理ライブラリ。
- FS2
- Scala向けの合成ストリーミングI/Oライブラリ。
- Jubatus
- オンライン機械学習向けの分散処理フレームワークおよびライブラリ。
- Kzmlabs StateFun Actors
- Apache Flink 2.xにおける状態を持つアクター。キーごとの持続可能な状態、正確1回のメッセージング、KafkaおよびKinesis I/Oを備える。
- MediaPipe
- ライブおよびストリーミングメディア向けのクロスプラットフォームかつカスタマイズ可能な機械学習ソリューション。
- Monix
- 非同期およびイベントベースプログラム向けの高性能ScalaおよびScala.jsライブラリ。
- Numalogic
- 機械学習モデルおよびツールのコレクション。運用時系列データにおける異常検知および予測に用いる。
- Pulsar
- Python向けアクターベースのイベント駆動コンカレンシーフレームワーク。
- Quix Streams
- Apache Kafka上でリアルタイムデータエンジニアリング、分析、機械学習を行うPythonフレームワーク。
- River
- Python向けオンライン機械学習ライブラリ。
- samza-luwak
- Apache SamzaとLuwakのストレージクエリエンジンを統合し、全文ストリーム検索を実現するもの。
- Scramjet C++
- C++向けの反応型ストリームプログラミングフレームワーク。
- Scramjet Python
- Python向けの反応型ストリームプログラミングフレームワーク。
- Scramjet TypeScript
- 非同期JavaScriptおよびTypeScriptアプリケーション向けの反応型ストリームプログラミングフレームワーク。
- StormCV
- Apache Storm向けのコンピュータビジョン操作およびデータモデル。
- Stream Ops
- Java向けの埋め込み型データストリーミングエンジンおよびストリーム処理API。
- streamDM
- Huaweiが開発した、Spark Streamingを用いたデータストリームの分析用ライブラリ。
- Streamiz.Kafka.Net
- Apache Kafka向けの.NETストリーム処理ライブラリ。
- Streamparse
- Apache Storm向けのPython API、コマンドラインツール、およびトポロジDSL。
- Streamz
- 分岐、結合、フロー制御、バックプレスの機能を備えた継続的なデータパイプラインの構築用ライブラリ。
- Summingbird
- StormおよびScalding上でストリームMapReduce計算を表現するための廃止されたライブラリ。
- Swave
- Scala向けの軽量な反応型ストリームインフラストラクチャツールキット。
- Tributary
- 同期、反応型、遅延評価型データフロー図の構築用Pythonライブラリ。
- trident-ml
- Apache Storm Tridentに基づくオンライン機械学習ライブラリ。
- WindFlow
- 多コアCPUおよびGPU向けのデータストリーム処理並列ライブラリ。
- Yurita
- PayPalがSpark Structured Streamingをベースに開発した異常検知フレームワーク。
データ統合とパイプライン
- Apache Flume
- 大量のログのようなデータを収集・集計・移動するための分散サービス。
- Brooklin
- ハイブリッドシステム間でスケール可能な信頼性の高い近接データストリーミングを実現する分散システム。
- Bruin
- イングレス、SQLおよびPython変換、データ品質チェックを統合した端到端データパイプラインツール。
- Camus
- LinkedInが廃止した、従来のKafka-to-HDFSパイプライン。
- CocoIndex
- AIおよびエージェントワークロードが継続的に更新される場合のインクリメンタルデータ変換エンジン。
- Databus
- LinkedInのソースに依存しない分散変更データキャプチャシステム。
- faucet-stream
- ETL、CDC、およびストリーミングデータ移動向けの構成駆動型プラットフォームおよび埋め込みライブラリ
- inGestr
- データベース、SaaSアプリケーション、データウェアハウス間のデータコピー用のコマンドラインアプリケーションおよびPython SDK
- Pathway
- ストリーミング処理、リアルタイム分析、AIデータパイプライン向けのPython ETLフレームワーク
- Redpanda Connect
- ソースとシンク間のデータを移動・豊富化・変換・フィルタリングするための宣言型ストリームプロセッサ
- RudderStack
- イベントストリーミングおよびクラウドからウェアハウスへのデータパイプライン向けの開発者中心の顧客データプラットフォーム
- Suro
- Netflixのデータパイプラインでアプリケーションイベントを収集・集計・配信
- yasdb
- SlateDBオブジェクトストレージをバックエンドにした持続可能なストリームプロトコルサーバーで、オフセットベースのキャッチアップ読み取りとSSEまたはロングポールテールインをサポート
アプリケーションとツール
- beava
- メッセージブローカーなしで、個体ごとのカウンタと集計をクエリするためのシングルバイナリの機能サーバー
- Eventum
- シンセティックイベントストリームを生成するためのデータ生成プラットフォーム
- javactrl-kafka
- コードファーストの分散ワークフローエンジンでマイクロサービスのオーケストレーションおよびビジネスプロセス自動化を実現
- Nussknacker
- 実時間決定アルゴリズムの定義と実行を行うための視覚ツール
- straw
- 実時間ストリーミング検索向けのプラットフォーム
- StreamAlert
- Airbnbのサーバレスフレームワークでリアルタイムセキュリティログの分析およびアラートを実行
- Streamdal
- アプリケーションデータフロー内のPIIを検出するためのコードネイティブなデータプライバシーコントロール
- StreamFlow
- ストリーム処理ワークフローの構築と監視を行うためのツール
- StreamingBandit
- コンテクスト付きマルチアームバンディング実験の設定と評価を行うためのウェブアプリケーション
- Streamline
- Apache Stormなどのエンジンを基盤としたHortonworksの視覚的なストリーム分析フレームワーク
- Substation
- セキュリティイベントと監査ログのルーティング、正規化、情報付加を行うツールキット。
- Turbine
- NetflixがServer-Sent Event JSONストリームを集計するためのツール
- Zilla
- アプリケーション、API、エージェント、デバイスをイベントストリームに接続するためのマルチプロトコルゲートウェイ
マネージド/クローズドソース
- Amazon Kinesis Data Streams - AWS上でリアルタイムデータストリームのイングレスと処理を行うための完全に管理されたサービス。
- Azure Stream Analytics
- クラウドおよびエッジでサーバーレスリアルタイム分析を提供する完全に管理されたサービス。
- Concord
- Apache Mesosに基づいた歴史的な分散ストリーム処理フレームワーク。
- Google Cloud Dataflow
- Apache Beamのバッチおよびストリーミングパイプラインを実行するための完全に管理されたサービス。
- IBM Streams
- 分散ストリーム処理およびリアルタイム分析用の廃止された専有プラットフォーム。
- NVIDIA DeepStream SDK
- GStreamerに基づくツールキットで、オープンソースコンポーネントとNVIDIAの専有ライブラリを用いてリアルタイムAIストリーミング分析およびマルチセンサ処理を行う。
ベンチマーク
- Flotilla
- スケーラブルなベンチマークにおけるメッセージキューのオーケストレーションを自動化するサービス。
- storm-perf-test
- Apache Stormのパフォーマンスおよびストレステスト。
- streaming-benchmarks
- ローレイテンシストリーム処理システム(Storm、Spark、Flinkを含む)のベンチマーク。
読み物
- In-Stream Big Data Processing
- The world beyond batch: Streaming 101 - Tyler Akidau著。
- Real Time Analytics: Algorithms and Systems (VLDB 2015)
- Grokking Streaming Systems - Josh Fischer、Ning Wang著。
- Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing - Reuven Lax、Slava Chernyak、Tyler Akidau著。
- Data Pipelines with Apache Airflow - Bas P. Harenslak、Julian Rutger de Ruiter著。
- MillWheel: Fault-Tolerant Stream Processing at Internet Scale
ライセンス

Creative Commons Attribution-ShareAlike 4.0 International License の下で提供されています。