- ADBC Drivers
- Quack
Pure Go
A from-scratch Go implementation of DuckDB's Quack client-server protocol, packaged as an ADBC driver — reachable from Python, Go, and every other ADBC language.
Bridge to anything ADBC
Because it is Arrow-native, a Quack server bridges directly to GizmoSQL, Oracle, or Db2 through the shared ADBC interface — no custom glue.
Arrow end to end
Results stream as Apache Arrow record batches, so bulk reads and writes move with minimal CPU and copying — the columnar shape analytics tools want.
One C API. Every language.
The examples on this page are in Python, but ADBC exposes each driver as a C-compatible shared library — so the same native core works from Go, Rust, Java, C#, C/C++, JavaScript, and more. One driver, every stack.
Get started
Install the driver and connect to a DuckDB Quack server — results come back as Apache Arrow.
1# pip install adbc-driver-quack
2import adbc_driver_quack.dbapi as quack
3
4with quack.connect(uri="quack://localhost:9494") as conn, conn.cursor() as cur:
5 cur.execute("SELECT * FROM range(10)")
6 print(cur.fetch_arrow_table())Bridge Quack to GizmoSQL
One driver’s reader is another driver’s ingest input. Move data from a Quack server into GizmoSQL — or Oracle or Db2 — without materialising it on the client.
1# Bridge Quack ↔ GizmoSQL (or Oracle / Db2) through the shared Arrow interface
2import adbc_driver_quack.dbapi as quack
3import adbc_driver_gizmosql.dbapi as gizmosql
4
5with quack.connect(uri=quack_uri) as src, \
6 gizmosql.connect(gizmosql_uri, username="token", password=token) as dst:
7 with src.cursor() as s, dst.cursor() as d:
8 s.execute("SELECT * FROM my_table")
9 d.adbc_ingest(table_name="my_table", data=s.fetch_record_batch(), mode="replace")
10 dst.commit()Quack ADBC driver — FAQ
What is Quack?
Quack is DuckDB's native client-server protocol, introduced by DuckDB Labs in 2026. It lets clients talk to a DuckDB server directly, complementing the embedded (in-process) DuckDB experience.
What does the Quack ADBC driver do?
It exposes a Quack server through the vendor-neutral ADBC API, so you can query a DuckDB Quack server from Python, Go, R, Rust, C#, C/C++, or JavaScript — and hand its Arrow results to any other ADBC driver.
How does this relate to GizmoSQL?
GizmoSQL provides the enterprise layer above the wire — authentication, permissions, multi-tenancy, audit logging, and observability — over Apache Arrow Flight SQL. The Quack driver lets you talk to DuckDB's native protocol too, and bridge Quack data into GizmoSQL through ADBC.
Is it free?
Yes, the driver is open source. Install it with a single pip command (adbc-driver-quack).