Skip to content

CQLite v0.12.0

Read, query, and now compact Apache Cassandra 5.0 SSTables — no cluster required. This is our biggest release yet.

  • Run SQL over your SSTables from Trino — a built-in Arrow Flight server exposes raw Cassandra data files as a federated source, no Cassandra cluster in the loop.
  • Pushdown that prunes: predicate pushdown, token-range SSTable pruning (skip files that can’t match), and nested predicates (OR/NOT).
  • Aggregation pushdowncount/sum/min/max/avg + GROUP BY evaluated close to the data, with an operator gate for high-cardinality groupings.
  • Stream SSTable changes straight to Parquetcqlite delta-export projects an SSTable generation into a CDC-style delta envelope: upserts plus row/range/partition tombstones with per-cell metadata.
  • Drop it into your lakehouse — feed the envelopes into DuckDB, Spark, or any Parquet consumer; ships with a DuckDB reference reconciliation guide for correct latest-state without a running cluster.
  • Embeddable Parquet export from Python and Node (export_parquet, configurable row-group size + compression).
  • cqlite compact produces SSTables identical to Apache Cassandra’s — verified in CI by a differential harness and an end-to-end Cassandra readback. Full reconciliation semantics: complex and range tombstones, gc_grace purging, TTL tie-breaks, and multi-cell collections and UDTs.
  • Canonical BTI (da) support — read and write Cassandra’s trie-indexed format.
  • WRITETIME() and TTL() in SELECT for debugging and migration.
  • Richer query enginePER PARTITION LIMIT, static columns, clustering order and bounds, and partition-targeted lookups that skip full scans.
  • Faster reads — a size-aware disk backend with direct I/O (O_DIRECT/F_NOCACHE) for huge files, so a big scan won’t thrash the page cache.
Terminal window
brew install pmcfadin/cqlite/cqlite # CLI (macOS + Linux)
cargo add cqlite-core # Rust library
pip install cqlite-py # Python
npm install @cqlite/node # Node.js

Full detail in the CHANGELOG.