skillfed

faust-streaming

Python Stream Processing. A Faust fork

faust-streaming v0.13.2 387.9K downloads/30d#7,041 on PyPI1,882
Permissive license Copyright (c) 2017-2020, Robinhood Markets, Inc. All rights reserved. Faust is licensed under The BSD License (3 Clause, also known as the new BSD license). The license is an OSI approved Open Source… (full text in the JSON record) Active released

What it is and what it does

Faust-streaming is a fork of the original Faust project that brings Kafka Streams semantics to Python using async/await and static typing. It lets you write stream processors as simple Python functions decorated with @app.agent(), consuming from Kafka topics and processing events asynchronously. The library handles distributed state through Tables—persistent, replicated key-value stores backed by RocksDB—allowing you to maintain aggregate counts, windowed metrics, and other stateful computations across a cluster of worker instances.

The package is designed for high-throughput, low-latency event processing pipelines. It supports windowing (tumbling, hopping, sliding), automatic failover via standby replicas, and changelog topics for durability. Unlike other stream frameworks, Faust requires only Kafka and Python—no DSL, no separate cluster manager—making it straightforward to integrate with existing Python libraries like NumPy, Pandas, or Django.

Use it for:

  • Count page views or events by URL/key using windowed tables and Kafka topic partitioning
  • Process order streams with stateful validation, enrichment, and async side effects like email notifications
  • Build real-time dashboards by aggregating metrics into tables that are replicated across worker nodes
  • Implement event-driven microservices that react to Kafka events with custom business logic
  • Migrate from Kafka Streams (Java) to Python while preserving stream topology and state semantics

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Faust-streaming is a Python library for building stream processing applications that consume from Kafka topics, perform stateful transformations, and persist distributed key-value state using RocksDB.

Yes, if you need to build distributed stream processing applications in Python with Kafka. The fork is actively maintained, supports modern Python versions (3.10–3.14), has no known vulnerabilities, and offers a permissive license. Install friction is moderate due to multiple dependencies, but pre-built wheels reduce friction. Not recommended if you need a simpler event queue or if your team lacks async/await experience.

Install

faust-streaming on PyPI

pip

pip install faust-streaming

uv

uv add faust-streaming

poetry

poetry add faust-streaming

Installing faust-streaming

Before you install

Medium install friction due to 12 runtime dependencies including aiokafka, aiohttp, and mode-streaming. The package is actively maintained with a recent release (4 days old) and supports Python 3.10–3.14 across macOS, Linux, and Windows with pre-built wheels.

License in practice

BSD 3-Clause license is permissive and GPL-compatible, allowing use in proprietary and open-source projects without requiring derivative works to be open-sourced. Documentation is separately licensed under CC BY-SA 4.0.

Quickstart

pip install faust-streaming

import faust

app = faust.App('myapp', broker='kafka://localhost')

class Order(faust.Record):
    account_id: str
    amount: int

@app.agent(value_type=Order)
async def process_orders(orders):
    async for order in orders:
        print(f'Order: {order.account_id} - {order.amount}')

Requires a running Kafka broker; Python 3.10 or later; familiarity with async/await syntax recommended.

Verify before relying

  • Whether RocksDB is bundled or requires separate system installation
  • Performance characteristics (throughput, latency) for production workloads
  • Compatibility guarantees with specific Kafka versions

Package facts

License Copyright (c) 2017-2020, Robinhood Markets, Inc. All rights reserved. Faust is licensed under The BSD License (3 Clause, also known as the new BSD license). The license is an OSI approved Open Source… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.10.0)
Install friction medium — platform-specific wheel
Runtime dependencies 12 — aiohttp, aiohttp_cors, aiokafka, click, mode-streaming, terminaltables, yarl, croniter, mypy_extensions, venusian, intervaltree, six
Maintenance actively maintained — 4 days since the last release
Last repo commit
First released
Downloads 387,857/month — #7,041 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: faust_streaming-0.13.2-cp310-cp310-macosx_10_9_x86_64.whl; faust_streaming-0.13.2-cp310-cp310-macosx_11_0_arm64.whl; faust_streaming-0.13.2-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; faust_streaming-0.13.2-cp310-cp310-win_amd64.whl; faust_streaming-0.13.2-cp311-cp311-macosx_10_9_x86_64.whl; faust_streaming-0.13.2-cp311-cp311-macosx_11_0_arm64.whl; faust_streaming-0.13.2-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; faust_streaming-0.13.2-cp311-cp311-win_amd64.whl; faust_streaming-0.13.2-cp312-cp312-macosx_10_13_x86_64.whl; faust_streaming-0.13.2-cp312-cp312-macosx_11_0_arm64.whl; faust_streaming-0.13.2-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; faust_streaming-0.13.2-cp312-cp312-win_amd64.whl; faust_streaming-0.13.2-cp313-cp313-macosx_10_13_x86_64.whl; faust_streaming-0.13.2-cp313-cp313-macosx_11_0_arm64.whl; faust_streaming-0.13.2-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; faust_streaming-0.13.2-cp313-cp313-win_amd64.whl; faust_streaming-0.13.2-cp314-cp314-macosx_10_15_x86_64.whl; faust_streaming-0.13.2-cp314-cp314-macosx_11_0_arm64.whl; faust_streaming-0.13.2-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; faust_streaming-0.13.2-cp314-cp314-win_amd64.whl

Keywords: stream, processing, asyncio, distributed, queue, kafka

Development Status :: 5 - Production/StableFramework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: POSIX :: BSDOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTopic :: System :: Distributed ComputingTopic :: System :: Networking

Tags

kafka stream processing pythonasync event processing librarydistributed stream processingkafka consumer with statereal-time data pipelinepython streaming frameworkevent-driven async processing
kafka-streamingasync-processingstateful-computation

More Distributed Computing packages