Discover / Data & Research
DuckDB Analytical Database
by duckdbC++
In-process SQL OLAP database management system built for high-performance analytical queries.
Maturity: stable because 8y old, v1.5.5 released 12d ago. Derived from release and commit history, not a rating.
- Stars
- 40k
- Forks
- 3.5k
- Downloads / mo
- —
- Last commit
- 2026-08-02
- License
- MIT
- Open issues
- 733
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · medium confidenceAnalytical queries over local CSV or Parquet files otherwise require standing up and maintaining a separate database server.
Use it when
When you want fast analytical SQL embedded directly inside an application, script or notebook with no server to run.
Not the right pick when
Wrong pick when you need a shared multi user database service, since it is designed as an in process system.
Capabilities
- high performance analytical database system
- rich SQL dialect with window functions, complex types and correlated subqueries
- query CSV and Parquet files by referencing them in the FROM clause
- standalone CLI plus Python, R, Java and Wasm clients
- deep integrations with pandas and dplyr
Requirements
- CMake, Python 3 and a C++17 compliant compiler to build from source
Cost: Free and open source
Video walkthroughs
Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.
What the repository ships
Detected from the actual files in the repository root.
Latest release v1.5.5
Published 2026-07-22
This is a bug fix release for various issues discovered after we released v1.5.4.
What's Changed
- backport the out-of-bounds security fixes made in #23100 by @Tishj in https://github.com/duckdb/duckdb/pull/23197
- Remove checked_array_iterator from fmt dep (1.4) by @carlopi in https://github.com/duckdb/duckdb/pull/23261
- Remove checked_array_iterator from fmt dep (1.4) by @staticlibs in https://github.com/duckdb/duckdb/pull/23239
- [Dev] Add LLDB scripts to help with debugging by @Tishj in https://github.com/duckdb/duckdb/pull/23297
- Add support for test config extending by @NiclasHaderer in https://github.com/duckdb/duckdb/pull/23145
- bump iceberg again by @Tmonster in https://github.com/duckdb/duckdb/pull/23311
- Correctly get typed value stats for fully shredded variants by @Mytherin in https://github.com/duckdb/duckdb/pull/23325
- bump unity to include backfill fix by @benfleis in https://github.com/duckdb/duckdb/pull/23326
- Add request body length to http logs by @DinosL in https://github.com/duckdb/duckdb/pull/23316
- Show transport errors in HTTP log by @DinosL in https://github.com/duckdb/duckdb/pull/23327
- Dispatch Rust nightly build by @mlafeldt in https://github.com/duckdb/duckdb/pull/23352
- parquet: reject DATA_PAGE_V2 pages with inconsistent compressed_page_size by @benfleis in https://github.com/duckdb/duckdb/pull/23279
- Fix deadlock in
TemporaryMemoryManagerby @lnkuiper in https://github.com/duckdb/duckdb/pull/23351 - Register
oidof dependencies in theDependencyManagerso that we can track if an object was re-created with the same name by @Mytherin in https://github.com/duckdb/duckdb/pull/23348 - [Dev] Fix recursion issue with
scripts/lldb/pointer_printby @Tishj in https://github.com/duckdb/duckdb/pull/23362 - [MultiFileReader] Prevent NULL MAP keys because of (likely missing) default value by @Tishj in https://github.com/duckdb/duckdb/pull/23354
- Propagate lambda bindings into
tryoperator by @Mytherin in https://github.com/duckdb/duckdb/pull/23375 - Bump Julia to v1.5.4 by @carlopi in https://github.com/duckdb/duckdb/pull/23398
- Add additional guards to
DICT_FSSTto prevent exception during compression with small block size by @sebastiaan-dev in https://github.com/duckdb/duckdb/pull/23341 - fix out-of-bounds read in json path ReadKey lookahead by @jmestwa-coder in https://github.com/duckdb/duckdb/pull/23371
- fix out-of-bounds read in string to struct cast by @jmestwa-coder in https://github.com/duckdb/duckdb/pull/23384
- Issue #23383: Common Aggregate CTEs by @hawkfish in https://github.com/duckdb/duckdb/pull/23409
- Use correct start time when verifying dependencies by @Mytherin in https://github.com/duckdb/duckdb/pull/23430
- Fix false RLE corruption error by @DinosL in https://github.com/duckdb/duckdb/pull/23458
- [v1.5] No cache if file doesn't contain version information by @dentiny in https://github.com/duckdb/duckdb/pull/23434
- Improve rle corruption error messages by @DinosL in https://github.com/duckdb/duckdb/pull/23480
- Issue #23457: Ordered FIRST_VALUE Framing by @hawkfish in https://github.com/duckdb/duckdb/pull/23499
- Enabled
ALPandALP_RDfor storage version v1.5.0 and up when using smaller block sizes by @sebastiaan-dev in https://github.com/duckdb/duckdb/pull/23483 - [v1.5] Backport PR #23444: fix eviction node memleak when external fi… by @dentiny in https://github.com/duckdb/duckdb/pull/23479
- [v1.5] Fix min/max aggregate stats when row groups filtered by @dentiny in https://github.com/duckdb/duckdb/pull/23517
- Backport #23468 and #23510 by @artjomPlaunov in https://github.com/duckdb/duckdb/pull/23529
- Fix arrow type extension bugs by @evertlammerts in https://github.com/duckdb/duckdb/pull/23534
- Issue #23500: JSON TIMESTAMP_TZ Formatting by @hawkfish in https://github.com/duckdb/duckdb/pull/23513
- fix out-of-bounds read in dictionary string decompression by @jmestwa-coder in https://github.com/duckdb/duckdb/pul
Tags
README
<div align="center">
<picture>
<source media="(prefers-color-scheme: light)" srcset="logo/DuckDB_Logo-horizontal.svg">
<source media="(prefers-color-scheme: dark)" srcset="logo/DuckDB_Logo-horizontal-dark-mode.svg">
<img alt="DuckDB logo" src="logo/DuckDB_Logo-horizontal.svg" height="100">
</picture>
</div>
<br>
<p align="center">
<a href="https://github.com/duckdb/duckdb/actions"><img src="https://github.com/duckdb/duckdb/actions/workflows/Main.yml/badge.svg?branch=main" alt="Github Actions Badge"></a>
<a href="https://discord.gg/tcvwpjfnZx"><img src="https://shields.io/discord/909674491309850675" alt="discord" /></a>
<a href="https://github.com/duckdb/duckdb/releases/"><img src="https://img.shields.io/github/v/release/duckdb/duckdb?color=brightgreen&display_name=tag&logo=duckdb&logoColor=white" alt="Latest Release"></a>
</p>
DuckDB
DuckDB is a high-performance analytical database system. It is designed to be fast, reliable, portable, and easy to use. DuckDB provides a rich SQL dialect with support far beyond basic SQL. DuckDB supports arbitrary and nested correlated subqueries, window functions, collations, complex types (arrays, structs, maps), and several extensions designed to make SQL easier to use.
DuckDB is available as a standalone CLI application and has clients for Python, R, Java, Wasm, etc., with deep integrations with packages such as pandas and dplyr.
For more information on using DuckDB, please refer to the DuckDB documentation.
Installation
If you want to install DuckDB, please see our installation page for instructions.
Data Import
For CSV files and Parquet files, data import is as simple as referencing the file in the FROM clause:
SELECT * FROM 'myfile.csv';
SELECT * FROM 'myfile.parquet';
Refer to our Data Import section for more information.
SQL Reference
The documentation contains a SQL introduction and reference.
Development
For development, DuckDB requires CMake, Python 3 and a C++17 compliant compiler. In the root directory, run make to compile the sources. For development, use make debug to build a non-optimized debug version. You should run make unit and make allunit to verify that your version works properly after making changes. To test performance, you can run BUILD_BENCHMARK=1 BUILD_TPCH=1 make and then perform several standard benchmarks from the root directory by executing ./build/release/benchmark/benchmark_runner. The details of benchmarks are in our Benchmark Guide.
Please also refer to our Build Guide and Contribution Guide.
Support
See the Support Options page and the dedicated endoflife.date page.