awesome-duckdb
🦆 A curated list of awesome DuckDB resources
https://github.com/davidgasquez/awesome-duckdb
Last synced: 3 days ago
JSON representation
Backends
- DuckDB API - a TypeScript-based Docker image containing DuckDB, and a Hono framework REST API with JSON or streaming Arrow responses.
- duckdb-server - A Rust-based server that runs a local DuckDB instance and supports queries over Web Sockets or HTTP/HTTPS, returning data in either Apache Arrow or JSON format.
- Hydra ETL - Declarative YAML ETL engine that can run each transformation step on DuckDB or pandas.
Client APIs
Client-Server Setups
- MotherDuck - A serverless cloud data warehouse powered by DuckDB.
- Crunchy Data Warehouse - Fully managed DBaaS based in PostgreSQL integrated with DuckDB.
- MyDuck Server - A server wrapping DuckDB with MySQL and PostgreSQL wire protocol support.
- pg_analytics - PostgreSQL extension embedding DuckDB-in-PostgreSQL for fast on-disk and remote object storage analytics from Postgres. Built as a Foreign Data Wrapper with full query pushdown to DuckDB. Integrates easily with ParadeDB.
- pg_duckdb - DuckDB-powered PostgreSQL for high-performance apps & analytics.
- pg_mooncake - A PostgreSQL extension that adds native column store tables with DuckDB.
- GizmoSQL - Arrow Flight SQL Server - A C++ implementation of the Arrow Flight SQL protocol that runs in a client-server setup with DuckDB or SQLite as backends.
- Porter - A Go-based implementation of a DuckDB Arrow Flight SQL Server.
- Termux DuckDB package - DuckDB CLI client for the Termux Android terminal emulator.
-
pg_lake
-
pg_lakeintegrates Iceberg and data lake files into Postgres. Uses DuckDB to execute queries. - AliSQL - A MySQL branch originated from Alibaba Group. Integrates DuckDB as a native storage engine.
- VillageSQL - Aggregate Parquet, CSV and JSON in object storage from SQL, with DuckDB embedded in MySQL.
- rawquery - Managed analytical platform pairing DuckDB compute with Iceberg storage on S3. Postgres wire protocol, CLI, and Python API.
- Layerbase - Managed DuckDB 2 hosting with a browser query console, REST API and CLI, plus DuckLake with a PostgreSQL catalog and Cloudflare R2 or AWS S3 storage, alongside 18 other database engines under one account. Databases scale to zero when idle and wake on connect.
- Hardcharger - An open-source DuckDB server using Chargewire (HTTP and Apache Arrow), with authentication, concurrent sessions, a desktop app for macOS and Windows, and ADBC, JDBC, ODBC, and JavaScript clients.
- SlackerDB - Java-based service that exposes DuckDB over the PostgreSQL wire protocol.
- GizmoData Cloud - Managed Hardcharger (DuckDB) and GizmoSQL servers on AWS, Google Cloud or Azure. Create DuckLake catalogs or connect an existing Apache Iceberg REST catalog (such as Apache Polaris or Lakekeeper), and mount them on any number of clusters.
DuckDB Clients and UIs
Web Clients (WebAssembly)
- Online DuckDB Shell - Online DuckDB shell powered by DuckDB-Wasm.
- Sekuel Playground - Query your local Parquet, CSV, JSON. Your data will not be sent out of the device you are using.
- Codapi - Embed executable code snippets directly into your product documentation, online course or blog post.
- Preswald - WASM packager for Python-based interactive data apps.
- Medama - Self-hostable, privacy-focused website analytics.
- DuckDB Terminal - Online DuckDB shell powered by DuckDB WASM and Ghostty.
-
dbxlite
- Open-source (MIT) SQL workbench for DuckDB that runs in the browser on DuckDB-Wasm, or as the UI for
duckdb -uivianpx dbxlite-uito query files on disk with native DuckDB. Also supports BigQuery and Snowflake. - DuckQuery - Open-source visual SQL workbench to query local files (CSV/Excel/Parquet/JSON) and remote databases (MySQL/PostgreSQL) in one cross-source JOIN, plus AI text-to-SQL. Browser demo runs on DuckDB-Wasm; the full version self-hosts via Docker.
- csvtodashboard - Free SQL-on-CSV in the browser via DuckDB-Wasm — no signup, no upload, files stay on-device.
- QuackDB - Open-source in-browser DuckDB SQL playground and editor.
- Duck-UI - Duck-UI is a web-based interface for interacting with DuckDB with a SQL editor, data import/export, data explorer, query history, theme toggle and keyboard shortcuts.
- Telemetry SQL Playground - Browser-based, read-only SQL playground powered by DuckDB-Wasm, with synthetic structured-event datasets.
- DBConvert Parquet Viewer - Browser-based Parquet viewer on DuckDB-Wasm. Reads the schema, row groups, compression codecs and column statistics, runs read-only SQL over the file and exports results as CSV. A JSONL/NDJSON viewer uses the same engine. Files are opened through a browser file handle and are not uploaded.
- ParquetKit - Browser-based Parquet viewer, SQL workbench and converter powered by DuckDB-Wasm. Fully client-side — files never leave your device.
- Parquetly - Browser-based Parquet viewer on DuckDB-Wasm. Shows the schema, row groups and column chunk statistics, runs SQL over the file, and exports to CSV or JSON. Files are read locally and are not uploaded.
- SQL Workbench - DuckDB-Wasm based SQL Workbench for running queries on local or remote data, being able to show data as tables or visually as graphs, and sharing queries via URLs.
- SQL Workbench Embedded - A lightweight JavaScript library that turns SQL code blocks into interactive, browser-based database environments. Powered by DuckDB WASM.
- Sidequery - Sidequery is a privacy-preserving DuckDB-powered query editor & data exploration tool for local & remote data.
- PondPilot - Open-source, 100% client-side data exploration tool that enables users to analyze local and remote data using SQL. Zero-copy direct access to local datasets sets PondPilot apart from similar tools. It runs entirely in the browser—no servers, no cloud uploads, and no setup required.
-
Bedevere
- Tabular data visualizer and DuckDB SQL editor on DuckDB-Wasm: open CSV/Parquet/JSON/Arrow locally, chart results with a grammar-of-graphics
VISUALIZEsyntax, and embed it anywhere via npm component or a one-line iframe. - ExploreMyData - Browser-based data explorer on DuckDB-Wasm: open CSV, Excel, JSON, Parquet, Arrow, Avro, SQLite and DuckDB files up to 1GB, chain filter/join/pivot/aggregate steps that each emit DuckDB SQL, write SQL directly, chart, and export. Files never leave the device.
Extensions
Community Extensions
- bigquery - Integrates DuckDB with Google BigQuery, allowing direct querying and management of BigQuery datasets.
- duckherder - Distributed execution for DuckDB queries.
- duckpgq - Add supports for SQL/PGQ (Property Graph Queries) introduced in the SQL:2023 standard.
- gsheets - Read and write Google Sheets using SQL.
- h3 - Adds support for the H3 discrete global grid system.
- netquack - Parsing, extracting, and analyzing domains, URIs, and paths with ease.
- prql - Run PRQL commands directly within DuckDB.
- scrooge - A set of aggregation functions and data scanners on financial data.
- ulid - ULID data type for DuckDB. A ULID is similar to a UUID except that it also contains a timestamp component.
- cache_httpfs - Adds a read caching layer to duckdb filesystem to improve query performance and reduce egress cost.
- 3fs - Integrates DuckDB with DeepSeek 3FS distributed file system.
- acp - Embeds AI agents such as Claude Code inside of DuckDB via Agent Client Protocol.
- yardstick - Implements Measures in SQL paper as a DuckDB extension for centralized metric definitions / en embedded semantic layer.
- curl_httpfs - Enhanced HTTP file system with connection pooling, HTTP/2 support, and asynchronous I/O operations.
- observefs - I/O observability for DuckDB filesystems with latency statistics and external file cache access insights.
- infera - A DuckDB extension for in-database inference.
- gaggle - A DuckDB extension for working with Kaggle datasets.
- onager - A DuckDB extension for graph data analytics.
- elasticsearch - Query Elasticsearch indices directly using SQL.
- cache_prewarm - A Preloads table data blocks into the buffer pool or OS page cache, inspired by PostgreSQL's pg_prewarm extension.
- dash - Fully local data canvas and dashboarding app within DuckDB.
- hostfs - Navigate and explore the local filesystem using SQL.
- pfc - Read block-indexed PFC-compressed JSONL logs with timestamp filtering — 25% smaller than gzip with minimal S3 egress.
- pst - Read Microsoft PST files in-place with rich schemas for emails, contacts, appointments, tasks, and more.
-
stats_duck
- Statistics for tabular and clinical data: descriptive tables (
table_one), linear models with robust/clustered standard errors, meta-analysis, bootstrap, and a grammar-of-graphicsVISUALIZEclause that turns queries into Vega-Lite charts. - gpudb - GPU-accelerated plain DuckDB SQL on Apple Silicon Metal and NVIDIA CUDA: GROUP BY, joins, filters and top-k run on the GPU when measured faster, with the same answers.
- query_condition_cache - Caches query conditions to improve performance for repeated-query workloads.
- a5 - Pentagon-based geospatial indexing with the A5 global grid.
- adbc_scanner - Queries other databases from DuckDB using ADBC drivers.
- airport - Queries Apache Arrow Flight services from DuckDB SQL.
- bitfilters - Builds and queries probabilistic membership filters, including XOR, binary fuse, quotient and Bloom filters.
- cronjob - Schedules SQL queries with cron expressions while the DuckDB process is running.
- crypto - Cryptographic hash functions and HMAC.
- datasketches - Approximate distinct counts, quantiles and frequent items using Apache DataSketches.
- evalexpr_rhai - Evaluates the Rhai scripting language as part of SQL.
- events - Forwards DuckDB query, transaction and connection events to external programs.
- finetype - Detects the semantic type of text columns and values (emails, dates, IP addresses, currency amounts) and reports the DuckDB type each can be cast to.
- fuzzycomplete - Performs fuzzy string matching for autocompletion.
- geosilo - Compact geometry storage with coordinate quantization and delta encoding.
- gridpin_ext - Offline forward and reverse geocoding in SQL from a local per-country data file built from Overture Maps data.
- hashfuncs - Non-cryptographic hash functions including xxHash, MurmurHash3 and RapidHash.
- http_client - Makes HTTP GET and POST requests from SQL.
- httpserver - DuckDB HTTP API Server and Query Interface.
- inflector - String case conversion, pluralization and singularization functions.
- json_schema - JSON Schema draft-07 validation and default-value enrichment.
- jsonata - Evaluates JSONata expressions against JSON values in SQL.
- lindel - Linearization/Delinearization, Z-Order, Hilbert and Morton Curves.
- marisa - Builds and queries compact MARISA tries for string lookup and prefix search.
- minijinja - Renders Jinja-compatible templates from SQL using MiniJinja.
- ml - Lightweight, columnar-native ML for DuckDB — train + inference, 34 algorithms, zero Python deps.
- orc - Reads Apache ORC files in pure Rust — all primitives, struct, list, map types and every compression codec (Zlib, Snappy, LZO, LZ4, ZSTD).
- python_udf - Embedded CPython UDFs for DuckDB — py_eval, py_agg, py_scan, py_register, py_call, py_map.
- quickjs - Runs JavaScript from SQL using the QuickJS-NG engine.
- radio - WebSocket and Redis Pub/Sub messaging from SQL.
- rapidfuzz - Fuzzy string matching and edit-distance functions using RapidFuzz.
- redis - Reads and writes Redis data from SQL.
- shellfs - Allows shell commands to be used for input and output.
- stochastic - Probability distributions, random sampling and statistical functions.
- tera - Renders Tera templates from SQL.
- textplot - Renders text-based bars, sparklines and density plots in query results.
- tributary - Queries Apache Kafka topics from DuckDB SQL.
- tsid - Generates time-sorted unique identifiers.
- webmacro - Loads SQL macros from remote URLs.
Core Extensions
- spatial - Enables geospatial processing.
- mysql - To read from and write to MySQL databases.
- postgres - To read from and write to PostgreSQL databases.
- sqlite - To read from and write to SQLite databases.
- vss - Add support for vector similarity search.
- fts - To support full-text search.
- arrow - A zero-copy data integration between Apache Arrow and DuckDB.
- avro - For reading Avro files.
- ducklake - For DuckLake support.
- aws - For handling AWS credentials.
- json - For reading and writing JSON data.
- parquet - For reading and writing Parquet data.
Extension Statistics
- DuckDB Extension Radar - Repository that contains DuckDB extensions on GitHub. Refreshed daily.
Other Extensions
- Kùzu - Scan DuckDB tables in Kùzu, an embeddable property graph database management system.
- duckdb_engine - SQLAlchemy driver for DuckDB.
- duckdb-extension-template-zig - A Zig & Nix toolkit template for building extensions against multiple versions of DuckDB using Zig, C or C++.
- duckdb-jfr-extension - DuckDB extension to read JFR (Java Flight Recorder) files directly.
- duckdb_protobuf - Plugin for querying encoded protobuf messages (both sequences and individual messages per file).
- duckdb-pytables - DuckDB extension to allow running SQL on arbitrary data sources.
- ODBC Scanner DuckDB Extension - DuckDB extension to read data directly from databases supporting the ODBC interface.
- QDuckDB - Plugin for reading DuckDB spatial tables in QGIS software.
-
UC Catalog Extension
- Proof-of-concept extension combining the
deltaextension with Unity Catalog. - ERPL Web - ERPL Web is a DuckDB extension that connects API-based ecosystems via standard interfaces like OData, GraphQL, and REST.
- quack-zig - The infamous DuckDB quack extension rewritten in C and built with Zig. Proof that you can develop DuckDB extensions without drowning in boilerplate.
- Lance - Integrate Lance (modern columnar data format for ML implemented in Rust) with DuckDB.
- DuckDB.ExtensionKit - Build native DuckDB extensions in C#.
- template-duckdb-extension-zig - A template for developing DuckDB extensions in Zig using DuckDB's C API.
-
go-duckfs
- A Go library that mounts
io/fsfile systems as DuckDB virtual file systems, sandboxing all I/O through the Go runtime. - ERPL - DuckDB SAP connector using RFC, ODP, or BICS.
- duckdb-fxmacrodata - Rust extension with table functions that return FXMacroData's official-source macroeconomic releases and release calendars as typed rows, with the publication timestamp of each figure.
- VGI - Exposes external workers as DuckDB catalogs, tables and functions using Apache Arrow IPC.
Installers
- DuckDB version manager (duckman) - Cross-platform installer and version manager for DuckDB.
- Snap package - Snap package of DuckDB, e.g., for Ubuntu Linux.
- Official installation page
- Brew formula
- Chocolatey packages - Chocolatey package for Windows.
Integrations
- data load tool - DuckDB destination - Extract and load data from APIs to DuckDB using dlt.
- target-duckdb - Load data to DuckDB based on Singer spec.
- Kestra DuckDB plugin - Run queries with DuckDB to schedule data transformations and process automations and run event-driven anomaly detection pipelines.
- nodbi - NoSQL Database Connector for R, providing a common API across Elasticsearch, CouchDB, MongoDB, SQLite, PostgreSQL, and DuckDB.
- jOOQ - Type safe querying of DuckDB (and many other RDBMS) from Java. A transpiler from and to DuckDB is also available.
- manifold-sql (DuckDB for Java) - Use native DuckDB SQL of any complexity directly & type-safely in Java source with comprehensive IntelliJ support.
- SQLFlow - Enables SQL-based stream processing, powered by DuckDB.
- nf-sqldb - This plugin provides support for interacting with SQL databases in Nextflow scripts.
- MindsDB - The platform for customizing AI from enterprise data. MindsDB integrates with DuckDB, making data from DuckDB accessible to a diverse range of AI/ML models.
- sqlite2duckdb - A CLI tool to convert SQLite database to DuckDB.
- kwack - In-Memory Analytics for Kafka using DuckDB.
- xlDuckDb - Excel addin to run DuckDB queries in Excel.
- Hasura DuckDB Connector - Allows connecting to a DuckDB database or a MotherDuck-hosted DuckDB database through a GraphQL API.
- Ontop - Allows to create Virtual Knowledge Graphs directly from DuckDB.
- The Quack is Back: SAS/ACCESS Meets DuckDB - SAS/ACCESS engine support for DuckDB.
- duckdb-teradata - Teradata connector.
- Kotlin DataFrame - Supports reading from DuckDB databases using JDBC.
- Sidemantic - A semantic layer with DuckDB integration.
- duckdb-tableau-connector - DuckDB Tableau connector.
- metabase_duckdb_driver - Metabase DuckDB Driver shipped as 3rd party plugin.
- duckdb-power-query-connector - DuckDB Power Query Custom Connector.
- dbt-duckdb - DuckDB dbt adapter.
- Cloudflare R2 Data Catalog connector - Connect to Cloudflare R2 Data Catalog with DuckDB.
- DuckDB VBA - Excel/VBA integration for DuckDB using the native C API through a lightweight DLL bridge. Supports Range/Array ingestion, dictionary lookups, Parquet/CSV/JSON workflows, SQLite/PostgreSQL connectivity, and Access-to-DuckDB migration.
- Enrich.sh - Lightweight event ingestion that stores JSON events as Parquet in R2, queryable directly from DuckDB.
- DuckDBExcelAddin - A native Microsoft Excel XLL add-in for querying Excel ranges with DuckDB SQL and parameter binding. Supports DuckDB 2.0.
- Bruin - Data pipeline CLI that runs SQL and Python transformations with built-in quality checks, using DuckDB as one of its supported platforms.
- ingestr - CLI tool to copy data between databases and SaaS sources, with DuckDB supported as both a source and a destination.
- omniload - Polyglot data loader for ETL, warehousing and more, based on dlt. Supports 140+ source/destination adapters. Derived from ingestr v0 (MIT).
- Scherlok - Data quality monitoring CLI that profiles tables and detects anomalies (volume, freshness, schema drift, NULL rates, distributions) without configuration; DuckDB is one of its connectors and backs its built-in demo.
Libraries Powered by DuckDB
- Ibis Project - A DataFrame API for interacting with DuckDB (and other compute engines).
- PyGWalker - A Python library that turns your dataframe into an interactive UI for data visualization.
- Mosaic - An extensible framework for linking databases and interactive views.
- Fugue - A unified interface for distributed computing. Fugue executes SQL, Python, Pandas, and Polars code on Spark, Dask and Ray without any rewrites.
- Simple-data-analysis - Easy-to-use and high-performance JavaScript library for data analysis.
- duckdb_fdw - DuckDB Foreign Data Wrapper for PostgreSQL.
- @jetblack/duckdb-react - A context manager for React and DuckDB-Wasm.
- QuackOSM - A Python library for downloading and transforming raw OpenStreetMap data into GeoParquet files.