whatisgithub

What is rockduck?

qianzii2/rockduck — explained in plain English

Analysis updated 2026-05-18

20RustAudience · developerComplexity · 5/5LicenseSetup · moderate

In one sentence

An embeddable Rust database combining fast transactional writes with columnar analytical scans in one library, built on DuckDB, RocksDB, and an Apache Iceberg style storage format.

Mindmap

mindmap
  root((RockDuck))
    What it does
      Transactional writes
      Analytical scans
      Time-travel queries
    Tech stack
      Rust
      DuckDB
      RocksDB
      Apache Iceberg
    Use cases
      Embed HTAP database in an app
      Run SQL over live and historical data
      Export tables to Iceberg format
    Audience
      Backend engineers
      Database developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Embed a single database in a Rust application that needs both fast writes and fast analytical queries

USE CASE 2

Run standard SQL queries against live and historical versions of the same data

USE CASE 3

Skip full table scans using zone maps and bloom filters for faster analytical queries

USE CASE 4

Export tables to Apache Iceberg format so other tools can read the same data

What is it built with?

RustDuckDBRocksDBApache Iceberg

How does it compare?

qianzii2/rockduckakitaonrails/ratatui-bubbleteadeepdiy/pdf2md
Stars202020
LanguageRustRustRust
Setup difficultymoderateeasyeasy
Complexity5/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires Rust 1.91 or newer, the project is an early 0.1.0 release with a Chinese-language README.

Released under the Apache 2.0 license, free to use, modify, and redistribute, including for commercial projects.

So what is it?

RockDuck is an embedded database written in Rust that handles both transactional and analytical workloads within a single system. This type of database is called HTAP, short for Hybrid Transactional and Analytical Processing. Most databases are optimized for one or the other: transactional databases (like PostgreSQL) are good at fast individual record reads and writes, while analytical databases (like DuckDB or ClickHouse) are good at scanning large datasets and computing aggregations. RockDuck combines both approaches in a single library you embed directly into your application. The architecture has three main components. DeltaStore is a row-oriented store that captures writes and updates at the cell level, recording before and after values with transaction IDs so the database can reconstruct any historical snapshot. Vortex is a columnar storage format for frozen, immutable segments that have been compacted out of the active write path, optimized for scanning many rows across a small number of columns. DuckDB provides the SQL execution engine through a virtual table extension, so you can run standard SQL queries against RockDuck data without building a query planner from scratch. Data is organized in a three-tier hierarchy of Segments, Granules, and Blocks, borrowed from ClickHouse's MergeTree design. Each segment starts in an active mutable state and is eventually frozen into a memory-mapped read-only file. Zone maps (per-granule min/max statistics) allow the query engine to skip irrelevant data blocks during scans. Bloom filters provide fast negative lookups. RocksDB stores all metadata across twelve column families covering primary key indexes, segment metadata, MVCC transaction tracking, zone maps, bloom filters, and Iceberg manifest data. The MVCC implementation is modeled on Apache Iceberg's shadow column approach, using created_by_txn and deleted_by_txn fields to support time-travel queries that return the state of a table as of any past transaction ID. Tables can also be exported to Apache Iceberg v2 format for interoperability with external tools. The project is at version 0.1.0, requires Rust 1.91 or newer, and is licensed under Apache 2.0. The README is written in Chinese.

Copy-paste prompts

Prompt 1
Explain how RockDuck's DeltaStore and Vortex components work together for HTAP workloads
Prompt 2
Walk me through how RockDuck's MVCC time-travel queries let me see a past state of a table
Prompt 3
Help me understand the three-tier Segment, Granule, Block storage hierarchy in RockDuck
Prompt 4
Show me how to export a RockDuck table to Apache Iceberg format

Frequently asked questions

What is rockduck?

An embeddable Rust database combining fast transactional writes with columnar analytical scans in one library, built on DuckDB, RocksDB, and an Apache Iceberg style storage format.

What language is rockduck written in?

Mainly Rust. The stack also includes Rust, DuckDB, RocksDB.

What license does rockduck use?

Released under the Apache 2.0 license, free to use, modify, and redistribute, including for commercial projects.

How hard is rockduck to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is rockduck for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.