README.md

August 14, 2026 ยท View on GitHub

Awesome Streaming Awesome Build Status

A curated list of awesome streaming (stream processing) frameworks, applications, readings and other resources. Inspired by other awesome projects.

Website

https://manuzhang.github.io/awesome-streaming/ is a more dynamic website where you can find updates of the awesome projects here.

Table of Contents

Engines and Platforms

  • Aeron Java/C++ - Reliable UDP unicast, multicast, and IPC message transport.
  • Apache Apex Archived Java - Unified platform for big data stream and batch processing.
  • Apache Flink Java - Distributed engine for stateful computation over bounded and unbounded data streams.
  • Apache Heron Archived Java - Retired distributed, fault-tolerant stream processing engine originally developed at Twitter.
  • Apache Kafka Java/Scala - Distributed event streaming platform for high-performance data pipelines and applications.
  • Apache Pulsar Java - Distributed pub-sub messaging and event streaming platform.
  • Apache RocketMQ Java - Cloud-native messaging and streaming platform for event-driven applications.
  • Apache Samza Java/Scala - Distributed stream processing framework built on Apache Kafka with standalone and YARN deployment options.
  • Apache Spark Streaming Scala/Java/Python/R - Scalable, fault-tolerant stream processing on Apache Spark.
  • Apache Storm Java - Distributed real-time computation system for reliably processing unbounded streams of data.
  • Apache StreamPipes Java/Python/TypeScript - Self-service industrial IoT platform for connecting, analyzing, and exploring data streams.
  • ArkFlow Rust - High-performance stream processing engine with pluggable sources, processors, and sinks.
  • Arroyo Rust - Distributed stream processing engine for stateful SQL computations over unbounded data.
  • AthenaX Archived Java - Uber's retired SQL-based streaming analytics platform.
  • AutoMQ Java/Scala - Diskless Kafka-compatible streaming platform that stores durable data in object storage.
  • Bytewax Python/Rust - Community-maintained Python framework with a Rust-based distributed engine for stateful stream processing.
  • eKuiper Go - Lightweight data stream processing engine for resource-constrained IoT edge devices.
  • Esper Archived Java - Complex event processing, Streaming SQL, and event series analysis engine.
  • Fluvio Rust/WASM - Composable, stateful data streaming system with programmable in-line computation.
  • Gazette Go - Cloud-storage-backed streaming infrastructure that combines SQL, batch, and millisecond-latency stream processing.
  • Gearpump Scala - Lightweight real-time distributed streaming engine built on Akka.
  • hailstorm Archived Haskell - Distributed stream processing with exactly-once semantics based on Storm.
  • Hazelcast Jet Archived Java - Stream and batch processing engine whose development moved into Hazelcast Platform.
  • HStreamDB Haskell - Cloud-native streaming database for IoT data storage and real-time processing.
  • ksqlDB Java - Source-available database purpose-built for stream processing applications.
  • LaminarDB Rust - Embeddable streaming SQL engine built on Apache Arrow and DataFusion.
  • LightSaber Archived C++ - Multi-core stream processing engine using code generation for window aggregation.
  • LogDevice Archived C++ - Facebook's archived distributed storage system for sequential data.
  • Maki Nage Archived Python - Stream processing framework for data scientists based on Kafka and ReactiveX.
  • Mantis Java - Netflix platform for building real-time, operations-focused stream processing applications.
  • Materialize Rust - Incremental SQL engine for maintaining continuously updated views over changing data.
  • Metaq Archived Java - Taobao distributed messaging system.
  • mupd8 (Muppet) Archived Scala/Java - MapReduce-style framework for processing fast-moving data streams.
  • NATS Streaming Archived Go - Deprecated disk-backed messaging system superseded by NATS JetStream.
  • NebulaStream C++ - Data management system for cloud-edge-sensor environments.
  • NSQ Go - Real-time distributed messaging platform designed to operate at scale.
  • Numaflow Rust/Go/TypeScript - Kubernetes-native, language-agnostic platform for scalable event-driven applications.
  • Onyx Archived Clojure - Distributed, masterless, fault-tolerant data processing platform.
  • PipelineDB Archived C - Unmaintained PostgreSQL extension for continuous SQL aggregation over time-series data.
  • Proton C++ - Unified streaming and historical data analytics database powered by ClickHouse.
  • Redpanda C++ - Kafka API-compatible streaming data platform without ZooKeeper or a JVM.
  • RisingWave Rust - PostgreSQL-compatible streaming database for event-driven applications, real-time ETL, and continuous analytics.
  • S4 Archived Java - Retired distributed platform for processing continuous unbounded data streams.
  • SABER Archived Java/C - Window-based hybrid CPU/GPU stream processing engine.
  • Scramjet Cloud Platform TypeScript/Python - Distributed runtime for running and managing data processing programs on edge, server, and cloud infrastructure.
  • SensorBee Archived Go - Discontinued lightweight stream processing engine for IoT.
  • Siddhi Java - Streaming SQL and complex event processing engine.
  • SPQR Archived Java - Dynamic framework for processing high-volume data streams through pipelines.
  • Squall Archived Java - Online SQL query processing engine built on Apache Storm.
  • StreamCQL Archived Java - Storm-based continuous query language for real-time computation.
  • Teknek Archived Java - Stream processing platform with the interactive Stream Operator Language shell.
  • Tigon Archived C++/Java - High-throughput real-time stream processing framework built on Hadoop and HBase.
  • Trill Archived C# - Single-node query processor for temporal and streaming data from Microsoft Research.
  • Wally Archived Pony - Distributed stream processing framework formerly named Wallaroo.
  • Wingfoil Rust/Python/TypeScript - Graph-based stream processing engine for latency-critical systems.

Libraries, SDKs, and Programming Models

  • Akka Scala/Java - Toolkit and runtime for concurrent, distributed, resilient applications on the JVM.
  • Akka Streams Scala/Java - Reactive Streams implementation built on Akka actors.
  • Apache Beam Java/Python/Go - Unified programming model and language-specific SDKs for batch and streaming data processing.
  • Apache Edgent Archived Java - Retired programming model and runtime for streaming analytics on gateways and edge devices.
  • Apache Kafka Streams Java - Stream processing library included with Apache Kafka.
  • Apache Pekko Scala/Java - Open-source toolkit for concurrent, distributed, resilient applications, forked from Akka 2.6.
  • Apache SAMOA Archived Java - Retired distributed streaming machine learning framework.
  • Apache StormCrawler Java - Scalable web crawler SDK based on Apache Storm.
  • CapyMOA Python/Java - Machine learning library for data streams with a Python API and MOA backend.
  • coast Archived Scala - DSL that builds exactly-once dataflow graphs on top of Apache Samza.
  • Daggy C++ - Utility and developer library for aggregating and capturing data streams.
  • DataSketches Java - Apache library of stochastic streaming algorithms known as sketches.
  • FastStream Python - Asynchronous framework for building event-driven applications with Kafka, RabbitMQ, NATS, Redis, and MQTT.
  • Faust Archived Python - Deprecated Python stream processing library inspired by Kafka Streams.
  • FS2 Scala - Compositional streaming I/O library for Scala.
  • Jubatus Archived C++ - Distributed processing framework and library for online machine learning.
  • Kzmlabs StateFun Actors Java - Stateful actors on Apache Flink 2.x with durable per-key state, exactly-once messaging, and Kafka and Kinesis I/O.
  • MediaPipe C++/Python/Java/TypeScript - Cross-platform, customizable ML solutions for live and streaming media.
  • Monix Scala - High-performance Scala and Scala.js library for asynchronous and event-based programs.
  • Numalogic Python - Collection of machine learning models and tools for anomaly detection and forecasting on operational time-series data.
  • Pulsar Archived Python - Actor-based event-driven concurrency framework for Python.
  • Quix Streams Python - Python framework for real-time data engineering, analytics, and machine learning on Apache Kafka.
  • River Python - Online machine learning library for Python.
  • samza-luwak Archived Java - Integration of Apache Samza with the Luwak stored-query engine for full-text stream search.
  • Scramjet C++ Archived C++ - Reactive stream programming framework for C++.
  • Scramjet Python Archived Python - Reactive stream programming framework for Python.
  • Scramjet TypeScript Archived TypeScript - Reactive stream programming framework for asynchronous JavaScript and TypeScript applications.
  • StormCV Archived Java - Computer vision operations and data models for Apache Storm.
  • Stream Ops Archived Java - Embeddable data streaming engine and stream processing API for Java.
  • streamDM Archived Scala - Huawei library for mining data streams with Spark Streaming.
  • Streamiz.Kafka.Net C# - .NET stream processing library for Apache Kafka.
  • Streamparse Archived Python - Python API, command-line tools, and topology DSL for Apache Storm.
  • Streamz Python - Library for building continuous data pipelines with branching, joining, flow control, and back pressure.
  • Summingbird Archived Scala - Retired library for expressing streaming MapReduce computations over Storm and Scalding.
  • Swave Archived Scala - Lightweight Reactive Streams infrastructure toolkit for Scala.
  • Tributary Python - Python library for constructing synchronous, reactive, and lazy dataflow graphs.
  • trident-ml Archived Java - Online machine learning library based on Apache Storm Trident.
  • WindFlow C++ - Data stream processing parallel library for multi-core CPUs and GPUs.
  • Yurita Archived Scala - PayPal anomaly detection framework built on Spark Structured Streaming.

Data Integration and Pipelines

  • Apache Flume Java - Distributed service for collecting, aggregating, and moving large amounts of log-like data.
  • Brooklin Java - Distributed system for reliable nearline data streaming between heterogeneous systems at scale.
  • Bruin Go - End-to-end data pipeline tool combining ingestion, SQL and Python transformations, and data quality checks.
  • Camus Archived Java - LinkedIn's retired, previous-generation Kafka-to-HDFS pipeline.
  • CocoIndex Rust/Python - Incremental data transformation engine for continuously updated AI and agent workloads.
  • Databus Archived Java - LinkedIn source-agnostic distributed change data capture system.
  • faucet-stream Rust - Config-driven platform and embeddable library for ETL, CDC, and streaming data movement.
  • inGestr Go/Python - Command-line application and Python SDK for copying data between databases, SaaS applications, and data warehouses.
  • Pathway Python/Rust - Python ETL framework for stream processing, real-time analytics, and AI data pipelines.
  • Redpanda Connect Go - Declarative stream processor for moving, enriching, transforming, and filtering data between sources and sinks.
  • RudderStack Go - Developer-focused customer data platform for event streaming and cloud-to-warehouse data pipelines.
  • Suro Archived Java - Netflix data pipeline for collecting, aggregating, and dispatching application events.
  • yasdb Go - Durable Streams protocol server backed by SlateDB object storage, with offset-based catch-up reads and SSE or long-poll tailing.

Applications and Tools

  • beava Rust/Python - Single-binary feature server for querying fresh per-entity counters and aggregates without a message broker.
  • Eventum Python/TypeScript - Data generation platform for producing synthetic event streams.
  • javactrl-kafka Java - Code-first distributed workflow engine for microservice orchestration and business process automation.
  • Nussknacker Scala - Visual tool for defining and running real-time decision algorithms.
  • straw Archived Python/Java - Platform for real-time streaming search.
  • StreamAlert Archived Python - Airbnb serverless framework for real-time security log analysis and alerting.
  • Streamdal Archived TypeScript - Code-native data privacy controls for detecting PII in application data flows.
  • StreamFlow Archived Java - Tool for building and monitoring stream processing workflows.
  • StreamingBandit Python - Web application for setting up and evaluating contextual multi-armed bandit experiments.
  • Streamline Archived Java - Hortonworks visual stream analytics framework built around engines such as Apache Storm.
  • Substation Go - Toolkit for routing, normalizing, and enriching security event and audit logs.
  • Turbine Archived Java - Netflix tool for aggregating Server-Sent Event JSON streams.
  • Zilla Java - Multi-protocol gateway for connecting applications, APIs, agents, and devices to event streams.

Managed and Closed Source

  • Amazon Kinesis Data Streams - Fully managed service for ingesting and processing real-time data streams on AWS.
  • Azure Stream Analytics SQL - Fully managed service for serverless real-time analytics in the cloud and at the edge.
  • Concord Archived C++ - Historical distributed stream processing framework built on Apache Mesos.
  • Google Cloud Dataflow Java/Python/Go - Fully managed service for running Apache Beam batch and streaming pipelines.
  • IBM Streams Archived Python/Java/Scala - Discontinued proprietary platform for distributed stream processing and real-time analytics.
  • NVIDIA DeepStream SDK C/C++/Python - GStreamer-based toolkit with open-source components and proprietary NVIDIA libraries for real-time AI streaming analytics and multi-sensor processing.

Benchmarks

  • Flotilla Archived Go - Automated message queue orchestration for scaled-up benchmarking.
  • storm-perf-test Archived Java - Apache Storm performance and stress test.
  • streaming-benchmarks Archived Java - Benchmarks for low-latency stream processing systems including Storm, Spark, and Flink.

Readings

  1. In-Stream Big Data Processing
  2. The world beyond batch: Streaming 101 by Tyler Akidau.
  3. Real Time Analytics: Algorithms and Systems (VLDB 2015)
  4. Grokking Streaming Systems by Josh Fischer & Ning Wang
  5. Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing by Reuven Lax, Slava Chernyak, and Tyler Akidau
  6. Data Pipelines with Apache Airflow by Bas P. Harenslak and Julian Rutger de Ruiter
  7. MillWheel: Fault-Tolerant Stream Processing at Internet Scale

License

Creative Commons License

Licensed under a Creative Commons Attribution-ShareAlike 4.0 International License