Skip to content

Roadmap

CQLite is at v0.11.0. The read path, CLI, output writers (including Parquet), Python and Node.js bindings, and write support with STCS compaction are production-ready. This page is what comes next.

The roadmap is community-driven. The fastest way to move something up the list is to open or +1 an issue describing your use case — and to star the repo so the project’s reach is visible.

Last reviewed: 2026-06-16 (v0.11.0).

MilestoneStatus
M1 — Core SSTable reading✅ Complete
M2 — CLI (one-shot + REPL)✅ Complete
M3 — Output writers (CSV, JSON, Parquet, CQL)✅ Complete
M4 — Python + Node.js bindings✅ Complete
M5 — Write support + STCS compaction✅ Complete (v0.9.0)
M6 — WASM bindings for the browser📋 Planned
M7 — Performance validation + v1.0📋 Planned

These are the active workstreams between v0.11.0 and v1.0. Each links to its GitHub epic with the child tasks.

PER PARTITION LIMIT, static-column tracking, clustering-order (ASC/DESC) extraction, and query-plan metadata (indexes_used). Closes the gap between CQLite’s SELECT support and CQL semantics.

Surface per-cell write timestamps and TTLs through the parser, executor, output formats, and bindings — a common need for debugging and migration workflows.

> 64-column serialization headers, explicit deletion-time semantics, DURATION comparator parsing, and phase 1 of BTI index writing for SSTables CQLite produces.

Promoted-index writing for wide partitions, streamed index/merge writers to drop the in-memory buffer, and BTI-payload Data.db offsets for O(log n) partition seeks. This also closes the wide-partition scan listed in Known Issues.

A dedicated read path for trie-indexed SSTables — full trie walk, ByteComparable decode, and Data.db chaining — so da-format files are read instead of rejected. Fixtures and sstabledump goldens already ship in the test corpus.

A streaming scan_delta API and cqlite delta-export subcommand that emit upserts, tombstones, and per-cell metadata as Parquet for change-data-capture and reconciliation pipelines.

Priorities follow real-world use. If you need something:

  1. Search existing issues and add a 👍 or a comment with your use case.
  2. File a new issue if it is not tracked.
  3. Star the repo — visibility directly affects how much time goes into the project.
  4. Contribute — see CONTRIBUTING and look for good-first-issue labels.