Reference
The SQL surface, the CLI and the Python binding, with the output each one actually produces.
Ubik runs SQL over a stream as a single process. This reference covers the
guarantee it makes, exactly-once across a crash; where it reads and writes,
Kafka; and the surfaces that expose it: the SQL dialect, the ubik CLI, and the
embeddable Python module.
Every response shown on these pages came out of the shipped binary. Where a page shows output, that is the output.
Start here
Exactly-once
What a checkpoint holds, what a kill -9 guarantees, and a run you can reproduce that stops mid-window and resumes with nothing lost or double-counted.
Kafka
Source and sink over the Kafka protocol, per-partition offsets, the transactional changelog, TLS and SASL, and the Avro and JSON wire formats.
Windows
TUMBLE, HOP and SESSION, the window_start output column, and the malformed calls the planner refuses before it binds.
Continuous views
A live GROUP BY with no window: one running value per key, republished as an upsert changelog on the --emit-every cadence.
Pipelines
Named, supervised jobs, one process each, resumed from checkpoint across a restart.
Python
import ubik, run streaming SQL in-process over libubik, results as pyarrow, pandas or polars.
Install
brew tap magiclex/ubik && brew trust magiclex/ubik
brew install magiclex/ubik/ubikpip install ubik-sqlLinux x86_64, Linux aarch64 and macOS arm64 (macOS 12 or later). Checksum verified tarballs are listed on the download page.