Skip to main content

High-performance stateful stream processor with a Rust core and a Python SDK.

Project description

Turbine

Turbine

A high-performance stateful stream processor with a Rust core and a Python interface.

Vision

Turbine aims to bring Kafka Streams-level stateful stream processing to the Python ecosystem, with performance that matches or exceeds JVM-based solutions. By writing the core engine in Rust and exposing a Python SDK, Turbine bridges the gap between raw throughput and the ergonomics that AI/ML practitioners expect.

Goals

  • Rust core — Low-latency, high-throughput stream processing engine with stateful operators (joins, aggregations, windowing).
  • Python SDK — Idiomatic Python API so users can define topologies, transformations, and integrate with AI/ML tooling (LLMs, inference pipelines, etc.).
  • Queryable state — Every node in the processing topology exposes its current state via an API. No more black-box pipelines.
  • Built-in observability — Console UI and REST API to inspect the state of any node in real time, monitor throughput, lag, and topology health.
  • Kafka-compatible — Consumes from and produces to Kafka and Kafka-compatible brokers (Redpanda).

Positioning

Turbine competes with:

  • Kafka Streams — Powerful but JVM-only. Turbine targets similar semantics with better performance and a Python-native experience.
  • Faust — Python stream processing, but slow, unmaintained, and limited tooling. Turbine offers Rust-level performance with superior observability and stability.

Why Python?

Python dominates the AI/ML landscape. Data scientists and ML engineers need to wire stream processing into inference pipelines, feature stores, and real-time AI applications. Turbine gives them a fast, stateful stream processor without leaving their ecosystem.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

turbine_stream-0.1.0a2-cp314-cp314t-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

turbine_stream-0.1.0a2-cp313-cp313t-manylinux_2_28_x86_64.whl (13.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

File details

Details for the file turbine_stream-0.1.0a2-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for turbine_stream-0.1.0a2-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e412475416e60a362e4131ec07dcd298a9f1501158397276ef3a66e10fc1c058
MD5 34d36d90c6c98b8e1e43378b960d940c
BLAKE2b-256 bbb54bdc9d57749da9aea142438786460f478d3aacf02c4232606adb526c8ae1

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbine_stream-0.1.0a2-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: release.yml on elrik75/Turbine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file turbine_stream-0.1.0a2-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for turbine_stream-0.1.0a2-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6bbc8cc36a114bcafbcc729639b1b7248f212d970cec13ac939796c9dfae951d
MD5 17471ade0d99ea9794eecfa546118f07
BLAKE2b-256 13db2b2746c21f9b53939bfe7479aff3077d9384bbe8aa7666039dbbb500cb27

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbine_stream-0.1.0a2-cp313-cp313t-manylinux_2_28_x86_64.whl:

Publisher: release.yml on elrik75/Turbine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page