clink is a modern stream processing engine designed for efficiency and simplicity. Built in C++23, it features stateful processing and seamless integration with Arrow data formats. Run SQL pipelines with low-latency in-process or scale up with distributed systems, ensuring exactly-once processing and deterministic replay capabilities.
clink is a high-performance embedded-first, Arrow-native stream processing engine developed in modern C++ (C++23). It enables stateful stream processing with advanced engine-grade capabilities including SQL support, event time handling, keyed state management, and exactly-once checkpointing. With clink, pipelines can be executed quickly either in-process or distributed, maintaining efficiency and reliability.
clink run pipeline.sql produces results in approximately 155 ms.libclink). Additionally, results can be collected as Arrow C streams or parsed in Python notebooks using pyclink.clink replay allows for the re-execution of operations over captured records, maintaining the exact state of events for regression tests.clink has demonstrated superior efficiency, processing events with significantly lower CPU usage compared to traditional JVM stream processors. For example, in the 17-query Nexmark suite over a five-node cluster, clink achieved a median performance improvement of 2.45 times in CPU utilization for equivalent output.
To experiment with clink, simply run:
docker run --rm ghcr.io/orhaugh/clink-runtime:latest run /opt/clink/examples/sql/hello.sql
This runs a predefined SQL pipeline that aggregates device readings, showcasing clink's capability to handle real-time data streams effectively.
clink is designed for macOS and Linux environments, specifically Debian family distributions, and is optimized for Apple Silicon. It supports CI compatibility and offers a straightforward build process, allowing users to compile from source or use prebuilt binaries.
Extensive documentation is available at orhaugh.github.io/clink, covering capability catalogs, SQL references, and detailed descriptions of supported connectors and internal structures. For users looking to contribute or seek assistance, the repository includes resources for reporting issues and discussions.
No comments yet.
Sign in to be the first to comment.