
DuckDB
An in-process analytical SQL database that runs inside your app with no server to manage.
- Stars
- 42.7k
- Forks
- 4.2k
- Licence
- MIT
- Language
- C++
- Last update
- 4 days ago
- Type
- Library
What it is
DuckDB is a database system built for analytical queries, the kind that summarize and combine large amounts of data. It runs inside your application rather than as a separate server, so there is nothing extra to set up or manage. It can query files like CSV, Parquet, and JSON directly, and it can also attach to PostgreSQL, MySQL, and SQLite databases.
- Run SQL directly on a Parquet or CSV file with SELECT * FROM 'myfile.parquet'
- Query data in S3, HTTP(S), Azure, or Google Cloud Storage without importing it first
- Join data from PostgreSQL, MySQL, or SQLite tables in a single query
- Read and manage tables in open lakehouse formats such as DuckLake, Iceberg, or Delta Lake
Great for
- Analysts who want to run SQL directly on CSV, Parquet, or JSON files
- Python or R users who work with pandas-style data and want fast SQL
- Developers embedding an analytical database in an application without running a server
- Students learning SQL on realistic data sets
Not ideal for
- Teams needing a high-volume transactional database for many concurrent writers, since DuckDB is designed for analytics rather than OLTP workloads
- People who want a fully managed hosted service, because the README describes an embedded system and support options rather than a hosted product
How to get it
- 1
Download the app
Clone the repository
git clone https://github.com/duckdb/duckdb - 2
Run it
- Download the CLI archive for your platform from the latest release page, or follow the installation page linked in the README
- Extract the archive and run the duckdb executable
- At the prompt, run SELECT * FROM 'myfile.csv'; using a file you have locally
- Or install a client library for your language, such as Python, R, or Java, following the docs
- 3
Get the most out of it
- Use the friendly SQL extensions to write shorter queries, as described in the README
- Load core and community extensions at runtime to add file formats, connectors, and functions
- Attach PostgreSQL, MySQL, or SQLite databases to query them in place without ETL
- Use DuckLake, Iceberg, or Delta Lake support when working with lakehouse data
Downloads
Strengths
- Runs in-process with no separate server and no external dependencies, according to the README
- Supports a broad SQL dialect including window functions, nested subqueries, and complex types
- Reads many file formats directly from local disk or cloud storage
Trade-offs
- The README is truncated and gives little detail on performance trade-offs or limits, so claims about speed should be checked against benchmarks
- Advanced features like the quack protocol and lakehouse formats add complexity that beginners may not need
- Building from source requires CMake, Python 3, and a C++17 compiler
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| duckdb (this) | 42.7k | Library | beginner | 4 days ago | Analysts who want to run SQL directly on CSV, Parquet, or JSON files |
| polars | 40.2k | Library | intermediate | 4 days ago | Python users who analyze large CSV or Parquet files and find slower tools too slow |
| turso | 25.1k | Library | intermediate | 4 days ago | Developers who want an embedded SQLite-compatible database in a Rust, JavaScript, Python, Java, Go, or .NET project |
| lowdb | 22.6k | Library | beginner | 7 months ago | Node.js developers building small tools or prototypes that need simple persistent storage |
| kysely | 14.3k | Library | intermediate | 4 days ago | TypeScript developers who want SQL control without losing compile-time type checks |
| vanna | 23.8k | Library | intermediate | 9 months ago | Developers adding a natural-language data question box to an internal app |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.