quixio/quix-streams

Python Streaming DataFrames for Kafka

quixio/quix‑streams – Python framework for real‑time data engineering on Kafka

What it is – An open‑source Python library that lets you build reliable, end‑to‑end streaming pipelines on top of Apache Kafka. It provides a Streaming DataFrame API and a lightweight Application object that handle Kafka connectivity, serialization, state‑management and exactly‑once guarantees, so you can focus on the transformation logic.

Key capabilities

  • Pure‑Python implementation – no Java wrappers or cross‑language debugging.
  • Streaming DataFrame API for declarative, tabular processing (apply, filter, group‑by, window, joins, etc.).
  • Pluggable Sources and Sinks to connect arbitrary Kafka topics.
  • Built‑in serializers for JSON, Avro, Protobuf and Schema Registry.
  • Fault‑tolerant stateful operators with automatic checkpointing.
  • Exactly‑once processing via Kafka transactions.
  • Works with any Python‑based analytics or ML library, making it easy to embed model inference or training in a live stream.

Typical workflow

from quixstreams import Application

app = Application(broker_address="localhost:9092")

in_topic  = app.topic("temperature-celsius", value_deserializer="json")
out_topic = app.topic("temperature-alerts",  value_serializer="json")

sdf = app.dataframe(topic=in_topic)
# transform, filter, then write out
sdf = sdf.apply(lambda v: {"temperature_F": v["temperature"]*9/5 + 32})
        .filter(lambda v: v["temperature_F"] > 150)
        .to_topic(out_topic)

app.run()

The Application consumes, deserialises, runs the dataframe logic, produces results, and checkpoints state automatically.

Getting started

  • Install via PyPI: python -m pip install quixstreams (or Conda).
  • Requires Python 3.11+ and Kafka 0.10+.
  • Full docs, quick‑start guide, and several tutorials (word‑count, anomaly detection, purchase filtering, solar‑farm enrichment) are hosted at https://quix.io/docs/quix-streams.

Where it runs

  • Anywhere Python is available – on‑premise servers, cloud VMs, containers, or the managed Quix Cloud platform (AWS, Azure, GCP). No extra server‑side clusters beyond the Kafka brokers you already use.

Community & support

  • Slack community, YouTube channel, X (Twitter) and LinkedIn for announcements and tutorials.
  • Issues are tracked on GitHub; the project is Apache 2.0 licensed.

Who might use it

  • Data engineers building real‑time ETL/ELT pipelines.
  • Machine‑learning teams that need to stream data to/from models for inference or online learning.
  • Developers of event‑driven microservices that rely on Kafka’s scalability and durability.

License – Apache 2.0 (see LICENSE file).

Related

  • Project
  • Project
  • Project
  • Project
  • Project