Releases
July 9, 2025

Quix Streams Release 3.19.0

Quix Streams v3.19.0: New open-source time series database sink for TDEngine.

Steve Rosam
Steve Rosam
Head of Content
QuixStreams 3.19.0, TDengine Sink

Python stream processing, simplified

Pure Python. No JVM. No wrappers. No cross-language debugging. Use streaming DataFrames and the whole Python ecosystem to build stream processing applications.

Python stream processing, simplified

Pure Python. No JVM. No wrappers. No cross-language debugging. Use streaming DataFrames and the whole Python ecosystem to build stream processing applications.

Data integration, simplified

Ingest, pre-process and load high volumes of data into any database, lake or warehouse, without overloading your systems or budgets.

The 4 Pillars of a Successful AI Strategy

Foundational strategies that leading companies use to overcome common obstacles and achieve sustained AI success.
Get the guide

Guide to the Event-Driven, Event Streaming Stack

Practical insights into event-driven technologies for developers and software architects.
Get the guide
Quix is a performant, general-purpose processing framework for streaming data. Build real-time AI applications and analytics systems in fewer lines of code using DataFrames with stateful operators and run it anywhere Python is installed.

Quix Streams v3.19.0: TDengine Sink for High-Performance Time Series Data

We're excited to announce the release of Quix Streams v3.19.0, featuring a new TDengine Sink connector. This release brings TDengine integration to your streaming pipelines, specifically optimized for IoT, connected vehicles, and industrial applications.

TDengine Sink Connector

TDengine is an open-source time series database designed for high-performance data ingestion and analysis. The new `TDengineSink` makes it easy to stream processed data from your Quix Streams applications directly into TDengine.

Key Benefits

1. Optimized for Time Series Data: TDengine's architecture is purpose-built for time series data, offering superior performance for high-velocity data streams

2. Industrial-Grade Performance: Handle massive volumes of IoT and telemetry data with ease

3. Seamless Integration: Connect your streaming pipelines to TDengine with just a few lines of code

4. Efficient Storage: TDengine's columnar storage and compression significantly reduce storage requirements

Getting Started

To use the new TDengine Sink, first ensure you have all the required TDengine connection details. Then, add the sink to your Quix Streams application:

from quixstreams import Application
from quixstreams.connectors.sinks import TDengineSink

# Initialize your Quix Streams application
app = Application(...)

# Create a TDengine Sink
tdengine_sink = TDengineSink(
    host="your-tdengine-host",
    port=6030,  # Default TDengine REST API port
    database="your_database",
    user="your_username",
    password="your_password"
)

# Create a streaming dataframe
sdf = app.dataframe(...)

# Write the streaming data to TDengine
sdf = sdf.update(lambda row: tdengine_sink.process(row))

# Run the application
app.run()

Internal Improvements

- Enhanced logging in `Application.run()` for better observability

- Various improvements to the TDengine sink implementation

Dependencies Update

- Updated types-protobuf to version 6.30.2.20250703

Upgrade

Upgrade to Quix Streams v3.19.0 to take advantage of the new TDengine Sink:

pip install --upgrade quixstreams

For detailed documentation on using the TDengine Sink, visit our TDengineSink documentation.

Use Cases

This new sink helps engineering teams maintain the full context of their test configurations while analyzing high-velocity time series data.

It was built for R&D teams at:

- Original Equipment Manufacturers (OEMs): Stream and analyze test data from prototype validation rigs and test benches

- Energy Transition Innovators: Process high-frequency sensor data from next-generation energy systems and renewable technologies

- High-Tech Engineering: Handle telemetry data from advanced R&D testbeds and validation environments

- Emerging Mobility: Ingest and analyze data from vehicle development and testing platforms

We're excited to see how you'll use this new integration in your time series data pipelines. Share your use cases and feedback with us on GitHub!

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.