Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Quix Streams is an end-to-end framework for real-time Python data engineering, operational analytics and machine learning on Apache Kafka data streams. Extract, transform and load data reliably in fewer lines of code using your favourite Python libraries.
Build data pipelines and event-driven microservice architectures leveraging Kafka's low-level scalability, resiliency and durability features in a lightweight library without server-side clusters to manage.
Quix Streams provides the following features to make your life easier:
Use Quix Streams to build simple Kafka producer/consumer applications or leverage stream processing to build complex event-driven systems, real-time data pipelines and AI/ML products.
# PyPI
python -m pip install quixstreams
# or conda
conda install -c conda-forge quixio::quixstreams
Python 3.9+, Apache Kafka 0.10+
See requirements.txt for the full list of requirements
Here's an example of how to process data from a Kafka Topic with Quix Streams:
from quixstreams import Application
# A minimal application reading temperature data in Celsius from the Kafka topic,
# converting it to Fahrenheit and producing alerts to another topic.
# Define an application that will connect to Kafka
app = Application(
broker_address="localhost:9092", # Kafka broker address
)
# Define the Kafka topics
temperature_topic = app.topic("temperature-celsius", value_deserializer="json")
alerts_topic = app.topic("temperature-alerts", value_serializer="json")
# Create a Streaming DataFrame connected to the input Kafka topic
sdf = app.dataframe(topic=temperature_topic)
# Convert temperature to Fahrenheit by transforming the input message (with an anonymous or user-defined function)
sdf = sdf.apply(lambda value: {"temperature_F": (value["temperature"] * 9/5) + 32})
# Filter values above the threshold
sdf = sdf[sdf["temperature_F"] > 150]
# Produce alerts to the output topic
sdf = sdf.to_topic(alerts_topic)
# Run the streaming application (app automatically tracks the sdf!)
app.run()
To see Quix Streams in action, check out the Quickstart and Tutorials in the docs:
There are two primary objects:
StreamingDataFrame
- a predefined declarative pipeline to process and transform incoming messages.Application
- to manage the Kafka-related setup, teardown and message lifecycle (consuming, committing). It processes each message with the dataframe you provide for it to run.Under the hood, the Application
will:
StreamingDataFrame
.You can run Quix Streams pipelines anywhere Python is installed.
Deploy to your own infrastructure or to Quix Cloud on AWS, Azure, GCP or on-premise for a fully managed platform.
You'll get self-service DevOps, CI/CD and monitoring, all built with best in class engineering practices learned from Formula 1 Racing.
Please see the Connecting to Quix Cloud page to learn how to use Quix Streams and Quix Cloud together.
This library is being actively developed by a full-time team.
Here are some of the planned improvements:
For a more detailed overview of the planned features, please look at the Roadmap Board.
Quix Streams is licensed under the Apache 2.0 license.
View a copy of the License file here.
FAQs
Python library for building stream processing applications with Apache Kafka
We found that quixstreams demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.