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.0a1-cp314-cp314t-manylinux_2_28_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

turbine_stream-0.1.0a1-cp313-cp313t-manylinux_2_28_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

File details

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

File metadata

File hashes

Hashes for turbine_stream-0.1.0a1-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 30e515c36ae943ee8c34afe5038610ca86e20ca6b2473ded3afe3a8353607090
MD5 49a4b01422f5db1981e51a02ce275f12
BLAKE2b-256 e1f6e0fe1fe5ec502aa22ab4124638ba39c7583dd5282a511231b00769cb3433

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbine_stream-0.1.0a1-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.0a1-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for turbine_stream-0.1.0a1-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55d9e2d1147b05a108a4abf94a94b8356fb271afac18f3bf0e2ccedef01f790d
MD5 5475faa9c0d219d38d84c8f4d4dd1988
BLAKE2b-256 c879e1d2f9758f2a2e7b6c496cfa1bcc7178b29966a9a47348bae07bfe1247a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbine_stream-0.1.0a1-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