📈 GH Trending Explorer 🎲 Surprise me

← all repos

duckdb / duckdb

git clone https://github.com/duckdb/duckdb.git v1.5.6 · 25d ago 🔥 on GitHub Trending today

Embedded analytical SQL database engine that runs in-process, with clients for Python, R, Java, Rust, Go, and Wasm.

Why you might care

Useful when you need fast OLAP queries over local or remote files without running a database server. It reads CSV, Parquet, JSON, and Excel directly, attaches to PostgreSQL, MySQL, and SQLite, and supports nested types and window functions.

Categories

Alternatives

SQLiteClickHousePolarsApache SparkPostgreSQL
+53
stars, 24h · #735
+~278
stars, 7 days · #795
+~1.2k
stars, 30 days · #706
42k
★ total · +1% this week
4.0k
forks · 983 open issues

Star history (as recorded here)

2026-10-20 · 42,306 ★ 2026-10-23 · 42,425 ★
LanguageC++
LicenseMIT
Created2018-06-26 (8y ago)
Last pushtoday
Watchers280
OwnerOrganization

Seen on GitHub Trending

  • 2026-10-23 — #1 daily in c++ · +47 ★
  • 2026-10-22 — #2 daily in c++ · +45 ★

GitHub topics

Links

README excerpt
## DuckDB
DuckDB is a high-performance analytical database system. It is designed to be fast, reliable, portable, and easy to use. DuckDB runs in-process inside your application, so there is no separate server to manage and no external dependencies. It can also read remote files, query other databases, and connect to other DuckDB instances when needed. It provides a rich SQL dialect with support far beyond basic SQL: arbitrary and nested correlated subqueries, window functions, collations, and complex types (arrays, structs, maps). Its friendly SQL extensions add syntax that makes queries shorter and easier to write.
DuckDB is available as a standalone CLI application and has clients for Python, R, Java, Rust, Go, Wasm, and many more, with deep integrations with packages such as pandas.
For more information on using DuckDB, please refer to the DuckDB documentation.
## Reads and writes any data
DuckDB reads and writes a wide range of file formats, including CSV, Parquet, JSON, and Excel, directly from local disk or from remote endpoints such as S3, HTTP(S), Azure, and Google Cloud Storage. For many of these formats, including CSV, Parquet, and JSON, loading data is as simple as referencing the file in the FROM clause:
 [code] 
DuckDB also works with open lakehouse formats. DuckLake stores table metadata in a SQL database rather than in metadata files, which removes the need for a separate catalog server while still providing ACID transactions, snapshots, and time travel. DuckDB also supports the Apache Iceberg and Delta Lake formats. Refer to our Data Import section for more information.
## Connects to other databases
DuckDB can attach to other database systems and query them in place, so you can read, join, and move data across engines without a separate ETL step. It speaks the native protocols of PostgreSQL, MySQL, and SQLite.
DuckDB instances can also connect to each other over the quack protocol, which turns a DuckDB instance into a server that other DuckDB clients attach to over HTTP.
## Extensible
DuckDB has a modular extension mechanism: core extensions are bundled with DuckDB, while community and third-party extensions can be installed and loaded at runtime. Extensions add file formats, database connectors, and new functions, types, and more.
## Installation
If you want to install DuckDB, please see our installation page for instructions.
## 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_run

Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.