Timeplus is a free, open source messaging & event streaming project written in C++ and released under Apache-2.0. It has 2,260 GitHub stars, 112 forks and 77 open issues, and was last pushed 19 hours ago. On this registry it ranks #3 of 8 tracked projects in Messaging & Event Streaming, with 5 head-to-head comparisons available. It gained 1 stars over the last 6 tracked days.

What is Timeplus?

What it is

Timeplus Proton is an open-source stream processing engine written in C++ and released under the Apache-2.0 license. It is presented as a single-binary SQL pipeline engine for real-time analytics, observability, ETL, and AI context. It lives in the messaging and event-streaming ecosystem, with topic links to Kafka, ClickHouse, Flink, ksqlDB, Iceberg, and observability.

The project solves the problem of running continuous queries over streams, logs, metrics, events, and change-data-capture feeds without assembling a larger JVM-based or cluster-dependent stack. It provides SQL for ingestion, joins, windows, materialized views, and sinks, while keeping queryable analytical state inside the engine.

Key capabilities

  • It processes real-time streams with SQL and supports streaming ingestion, multi-stream joins, and incremental materialized views.
  • It provides native source and sink connectors for Kafka, ClickHouse, MySQL, Postgres, MongoDB, S3/Iceberg, and OpenSearch.
  • It supports stream-processing operations such as tumble, hop, and session windows, watermarks, CDC, and data revision processing.
  • It stores queryable analytical and row-based materialized views inside Proton for dashboards and applications.
  • It supports alerting, tasks, and user-defined functions in Python and JavaScript.
  • It runs as a single C++ binary with no JVM and no ZooKeeper dependency.
  • It can be integrated through Python, Java, and Go SDKs, a REST API, and BI plugins.

Who uses it and how

  • Teams can use it as a ksqlDB or Apache Flink alternative for streaming ETL and continuous analytics.
  • Developers can create external Kafka streams and external ClickHouse tables, then write SQL materialized views that aggregate data and send it to ClickHouse.
  • Operators can generate random streams for local testing, then run grouping, counting, minimum, and maximum queries without immediate Kafka or ClickHouse access.
  • Application teams can build real-time context from streams, logs, metrics, events, and CDC for observability or AI workflows.
  • Users can start with the Proton client and SQL examples in the repository examples folder.

Getting started

The README recommends installing the open-source edition by running curl https://install.timeplus.com/oss | sh, then using the proton client to write SQL against streams and tables.

When to use it — and when not to

Choose Timeplus Proton when a team wants a lightweight Apache-2.0 C++ binary for SQL stream processing, ClickHouse integration, and built-in queryable materialized views without running a JVM or ZooKeeper. Compared with Apache Flink and ksqlDB, it offers a single-binary SQL engine with internal materialized views, but it is an early-stage project with no listed contributors and 77 open issues. If a deployment depends on external systems such as Kafka, ClickHouse, MySQL, Postgres, MongoDB, S3/Iceberg, or OpenSearch, the team must still operate those systems separately.

project readme (upstream, from github) — read inline

Website Demo Apache 2.0 License



The Timeplus company logo.


Fastest SQL pipeline engine for stream processing, analytics, observability and AI



    Release  YouTube  Slack  follow on LinkedIn  X 

What's Timeplus Proton

🚀 The fastest SQL pipeline engine in a single C++ binary, for stream processing, analytics, observability and AI. A simple, fast and efficient alternative to ksqlDB and Apache Flink, powered by ClickHouse engine.

🔥 SQL for everything : Native source/sink (Kafka, ClickHouse, MySQL, Postgres, MongoDB, S3/Iceberg, OpenSearch etc.), Streaming ingestion, Multi-stream JOINs, Incremental Materialized Views, Alerting, Tasks, UDF in Python/JS etc.

⚡ No JVM. No ZooKeeper. Zero dependencies. Just speed, control and scale.

Get started in seconds

curl https://install.timeplus.com/oss | sh

Why Timeplus Proton

  • Apache Flink or ksqlDB alternative. Timeplus Proton provides powerful stream processing functionalities, such as streaming ETL, tumble/hop/session windows, watermarks, incremental materialized views maintenance, CDC and data revision processing. In contrast to pure stream processors, it also stores queryable analytical/row based materialized views within Proton itself for use in analytics dashboards and applications.

  • Fast. Timeplus Proton is written in C++, with optimized performance through SIMD. For example, on an Apple MacBookPro with M2 Max, Timeplus Proton can deliver 90 million EPS, 4 millisecond end-to-end latency, and high cardinality aggregation with 1 million unique keys.

  • Lightweight. Timeplus Proton is a single binary (\ [!NOTE]

You can also integrate Timeplus Proton with Python/Java/Go SDK, REST API, or BI plugins. Please check Integrations

In the proton client, you can write SQL to create External Stream for Kafka or External Table for ClickHouse.

For example, you can read from AWS MSK and write the data to ClickHouse for the following SQL:

-- Read from AWS MSK using IAM Role
CREATE EXTERNAL STREAM aws_msk_stream (
  device string,
  temperature float
)
SETTINGS
    type='kafka',
    brokers='prefix.kafka.us-west-2.amazonaws.com:9098',
    topic='topic',
    security_protocol='SASL_SSL',
    sasl_mechanism='AWS_MSK_IAM';

-- Write to ClickHouse
CREATE EXTERNAL TABLE ch_aiven
SETTINGS type='clickhouse',
            address='abc.aivencloud.com:28851',
            user='avnadmin',
            password='..',
            secure=true,
            table='events';

-- Setup a long-running materialized view to write aggregated data to ClickHouse
CREATE MATERIALIZED VIEW mv_msk2ch INTO ch_aiven AS
SELECT window_start as timestamp, device, avg(temperature) as avg_temperature
FROM tumble(aws_msk_stream, 10s) GROUP BY window_start, device;

If you don't have immediate access to Kafka or ClickHouse, you can also run the following SQL to generate random data:

-- Create a stream with random data
CREATE RANDOM STREAM devices(
  device string default 'device'||to_string(rand()%4),
  temperature float default rand()%1000/10);

-- Run the streaming SQL
SELECT device, count(*), min(temperature), max(temperature)
FROM devices GROUP BY device;

You should see data like the following:

┌─device──┬─count()─┬─min(temperature)─┬─max(temperature)─┐
│ device0 │    2256 │                0 │             99.6 │
│ device1 │    2260 │              0.1 │             99

readme truncated — read the full docs on github

Frequently asked questions

Is Timeplus free to use?

Timeplus is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Timeplus do?

Real-time stream processing made simple and affordable

What is Timeplus written in?

Timeplus is primarily written in C++. Its source is publicly available at https://github.com/timeplus-io/proton, and it has 2,260 GitHub stars.