DuckFlightPreview
A DuckDB community extension that turns a running DuckDB database into a server: PostgreSQL clients and Arrow Flight SQL clients can connect, authenticate and query the same live database.
- What it is
- Query engines
- Part of
- Built on DuckDB
- Type
- Open source
- Made by
- Sidequery
- License
- MIT for the extension; the bundled core is distributed as an MIT-licensed binary, but its source code is private
- Status
- Preview. Version 0.1.x, first published in August 2026; builds exist for Linux and macOS only.
- Facts checked
- 24 October 2026
What it is
DuckDB is an in-process engine: normally only the program that opened the database file can query it. DuckFlight adds table functions that start network listeners inside that process. duckflight_pg_serve speaks the PostgreSQL wire protocol, so psql, Psycopg, JDBC drivers and BI tools can connect; duckflight_flight_serve speaks Arrow Flight SQL, so ADBC clients, or another DuckDB through the Airport extension, get results as Arrow data without row-by-row conversion. Both read and write the same live database as the host process, with no export or copy. duckflight_servers lists running listeners and duckflight_stop shuts one down.
Both listeners require authentication, configured in one duckflight.toml file: PostgreSQL users authenticate with SCRAM-SHA-256, Flight clients with a username and password or with bearer tokens, and mutual TLS is supported. Plain-text connections are allowed only on loopback addresses; anything else needs TLS. Tokens carry scopes, so a read-only client can be denied writes and administrative SQL. The extension installs from DuckDB’s community repository with INSTALL duckflight FROM community, and Sidequery also publishes a Docker image that runs both listeners against one database file with external file access locked down. It adds PostgreSQL compatibility macros, such as to_char and json_agg, so common PostgreSQL queries and client catalogue lookups work, but it is not a full PostgreSQL implementation.
Why teams pick it
- Shares one DuckDB database with many clients over the network, through protocols they already support
- Arrow Flight SQL returns columnar results, which suits Python, ADBC and DuckDB-to-DuckDB transfers
- Secure defaults: authentication always on, TLS required off loopback, scoped tokens, and client SQL blocked from reading local files or loading extensions in the Docker image
- Installs as an ordinary signed DuckDB extension, with no separate server to build
Watch out for
- Very new (0.1.x since August 2026), from a single company, with Linux and macOS builds only and no Windows or WebAssembly support
- The core that does the protocol work is a closed-source binary, even though it is distributed under MIT
- Still one DuckDB process on one machine: concurrency, memory and the single writable database file limit how many clients it can serve
- PostgreSQL compatibility is partial; tools that depend on PostgreSQL-specific catalogue tables or functions may break
- Query language
- DuckDB SQL, with PostgreSQL compatibility macros
- Client protocol
- PostgreSQL wire protocol and Arrow Flight SQL
More of the DuckDB family
What all query engines have in common →Compare side by side →
GizmoSQLOpen sourceA database server that wraps DuckDB (or SQLite) and serves it to many clients over Arrow Flight SQL, with TLS and authentication.
MotherDuckCommercialA serverless cloud data warehouse built on DuckDB, where one query can run partly on your laptop and partly in the cloud.How it fits with other technologies
Serve a DuckDB database over PostgreSQL and Arrow Flight SQL from inside DuckDB · sql
INSTALL duckflight FROM community;
LOAD duckflight;
-- users, tokens and optional TLS live in duckflight.toml
SELECT * FROM duckflight_pg_serve('127.0.0.1:5433', '/path/to/duckflight.toml');
SELECT * FROM duckflight_flight_serve('127.0.0.1:31337', '/path/to/duckflight.toml');
SELECT * FROM duckflight_servers();
SELECT * FROM duckflight_stop('pgwire', '127.0.0.1:5433');See it in a real stack
No architecture uses DuckFlight yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2026
DuckDB runs inside the process that opens it, which makes it fast and simple but leaves no built-in way for other programs, BI tools or teammates to query the same database over a network. GizmoSQL wraps DuckDB in a standalone Arrow Flight SQL server, and the Airport community extension lets DuckDB query and modify data on Arrow Flight servers. Sidequery, a company that makes native notebook apps and the Sidemantic metrics layer, took the other route: put the server inside DuckDB as an extension, so any DuckDB process can start serving.
Nico Ritschel’s first commit to the extension landed on 31 August 2026, and it was published as a DuckDB community extension in version 0.1.x that autumn, with releases every few days through October. Sidequery also publishes builds for DuckDB 2.0 from its own signed extension repository.
Why it’s built this way
- Run inside DuckDB, not beside it
- An extension shares the host’s live database, so writes from the host and from clients are visible to each other at once, with no second service or copy.
- Two protocols
- The PostgreSQL wire protocol reaches the widest range of existing tools; Arrow Flight SQL avoids converting columnar results to rows for analytics clients.
- Refuse insecure setups
- A database server reachable on a network must not be anonymous: listeners with no users or tokens don’t start, and non-loopback addresses fail without TLS.
Timeline
- 2026
First commit on 31 August; 0.1.x released as a DuckDB community extension
- 2026
Core v0.1.14 on 21 October; DuckDB 2.0 builds from Sidequery’s repository
- GitHub: sidequery/duckflight-extension commits (initial commit 31 August 2026)
- GitHub: sidequery/duckflight-extension releases (v0.1.11 to core v0.1.14, October 2026)
- Sidequery home page (notebook apps, Sidemantic)
- GitHub: sidequery/duckflight-extension README (DuckDB 2.0 builds, Airport)
- DuckDB community extensions: airport (Arrow Flight support for DuckDB)
- GitHub: gizmodata/gizmosql (DuckDB over Arrow Flight SQL)
Sources4 · facts checked 24 October 2026
- DuckDB community extensions: duckflight (install, functions, maintainer)
- GitHub: sidequery/duckflight-extension README (SQL API, authentication, TLS, Docker, licence)
- GitHub: sidequery/duckflight-extension description.yml (version 0.1.12, excluded platforms, MIT)
- GitHub: sidequery/duckflight-extension LICENSE (MIT)