DuckDB Quack Driver 0.1.0¶
Driver Version 0.1.0 Release Date 2026-10-22 Tested With DuckDB Quack 2.0
This driver provides ADBC access to a DuckDB server exposed through the Quack remote protocol.
Note
This project is not associated with DuckDB Labs.
Installation & Quickstart¶
The driver can be installed with dbc :
dbc install quack
Connecting¶
Connections require verified TLS by default. Start the local development
fixture with docker compose up -d --wait test-service. It includes a Caddy
TLS proxy with a locally issued certificate, so the example skips verification:
from adbc_driver_manager import dbapi
dbapi.connect(
driver="quack",
db_kwargs={"uri": "quack://localhost:9496/?token=quack-secret&tls=skip_verify"},
)
The plaintext endpoint is also available at
quack://localhost:9494/?token=quack-secret&tls=false.
Connection String Format¶
Quack URI syntax:
quack://HOST[:PORT]/?token=TOKEN
Components:
Scheme:quack://(required)HOST: Quack server host (required)PORT: Quack server port (optional)token: shared Quack authentication token (optional)tls:true(default) verifies the server certificate and hostname;falseuses plaintext HTTP;skip_verifyorskip-verifyrequires TLS without certificate or hostname verification.
The database option quack.tls accepts the same values and overrides the URI
setting regardless of setter order. Changes apply to subsequently initialized
connections only. Empty, null, unknown, and duplicate URI tls values are
rejected.
Feature & Type Support¶
| Feature | DuckDB Quack | |
|---|---|---|
| Bind Parameters | ❌ | |
| Bulk Ingestion | Create | ✅ |
| Append | ✅ | |
| Create/Append | ✅ | |
| Replace | ✅ | |
| Temporary Table | ❌ | |
| Target Catalog | ❌ | |
| Target Schema | ❌ | |
| Non-nullable fields are marked NOT NULL | ❌ | |
| Catalog (GetObjects) | depth=catalogs | ✅ |
| depth=db_schemas | ✅ | |
| depth=tables | ✅ | |
| depth=columns (all) | ✅ | |
| Get Parameter Schema | ❌ | |
| Get Table Schema | ❌ | |
| Prepared Statements | ✅ | |
| Transactions | ✅ | |
Types¶
Database to Arrow¶
| Database Type | DuckDB Quack |
|---|---|
|
BIGINT |
int64 |
|
BOOLEAN |
bool |
|
DATE |
date32[day] |
|
DOUBLE PRECISION |
double |
|
INT |
int32 |
|
NUMERIC |
decimal128 |
|
REAL |
float |
|
SMALLINT |
int16 |
|
TIME |
time64[us] |
|
TIMESTAMP |
timestamp[us] |
|
TIMESTAMP WITH TIME ZONE |
timestamp[us] (with time zone) |
|
TIMESTAMPTZ |
timestamp[us] (with time zone) ⚠️ [1] |
|
TIMESTAMP_MS |
timestamp[ms] |
|
TIMESTAMP_NS |
timestamp[ns] ⚠️ [2] |
|
TIMESTAMP_S |
timestamp[s] |
|
VARBINARY |
binary |
|
VARCHAR |
string |
Arrow to Database¶
| Arrow Type | DuckDB Quack Type |
|---|---|
| Ingest | |
|
binary |
VARBINARY |
|
binary_view |
VARBINARY |
|
bool |
BOOLEAN |
|
date32[day] |
DATE |
|
decimal128 |
NUMERIC ⚠️ [3] |
|
double |
DOUBLE PRECISION |
|
fixed_size_binary |
VARBINARY |
|
float |
REAL |
|
int16 |
SMALLINT |
|
int32 |
INT |
|
int64 |
BIGINT |
|
large_binary |
VARBINARY |
|
large_string |
VARCHAR |
|
string |
VARCHAR |
|
string_view |
VARCHAR |
|
time32[ms] |
TIME [4] |
|
time32[s] |
TIME [4] |
|
time64[ns] |
TIME |
|
time64[us] |
TIME |
|
timestamp[ms] |
TIMESTAMP(3) |
|
timestamp[ms] (with time zone) |
TIMESTAMP(3) WITH TIME ZONE [5] |
|
timestamp[ns] |
TIMESTAMP(9) |
|
timestamp[ns] (with time zone) |
TIMESTAMP(9) WITH TIME ZONE |
|
timestamp[s] |
TIMESTAMP(0) |
|
timestamp[s] (with time zone) |
TIMESTAMP(0) WITH TIME ZONE [5] |
|
timestamp[us] |
TIMESTAMP(6) |
|
timestamp[us] (with time zone) |
TIMESTAMP(6) WITH TIME ZONE |
Compatibility¶
This driver was tested on:
DuckDB Quack
2.0.0
Previous Versions¶
To see documentation for previous versions of this driver, see the following: