gizmodata

Go ADBC driver for DuckDB's Quack remote protocol (quack:// URI scheme). Returns Apache Arrow RecordBatches; supports bulk-ingest via APPEND_REQUEST. Distributed as a Go module + pip-installable Python wheel.

13
0
89% credibility
Found May 17, 2026 at 13 stars -- GitGems finds repos before they trend. Get early access to the next one.
Sign Up Free
AI Analysis
Go
AI Summary

This is an open-source database driver that enables Python programs (and other languages) to connect to DuckDB databases running on remote servers via the Quack protocol. It follows the Apache Arrow ADBC standard, which means it returns query results as efficient Arrow tables rather than traditional rows. Users can run SQL queries against remote databases, get results back in a memory-efficient columnar format, and bulk-load data from Python into database tables. The driver is published on PyPI, uses the MIT license, and is maintained by GizmoData with proper CI/CD testing.

How It Works

1
💡 You discover a faster way to query DuckDB

You learn about a driver that lets Python connect directly to DuckDB databases running on remote servers, returning your data in a super-efficient format.

2
📦 You install the driver

With one simple command, you add the driver to your Python setup and it's ready to use in your projects.

3
🖥️ A DuckDB server is running somewhere

Your team has a DuckDB database running with the Quack remote access enabled, waiting for connections on a specific port.

4
🔗 You connect your code to the server

Your Python code opens a connection to the remote database using a simple URL, like connecting to a website but for your database.

5
You choose how to work with your data
🔍
Query and explore data

Run SQL queries and get results back as efficient Arrow tables that work seamlessly with Pandas, Polars, or any data tool you prefer.

📤
Bulk load data

Push large amounts of data from Python directly into a new or existing table in the database with one command.

6
📊 Your results arrive efficiently

Data comes back in compact Arrow format, handling millions of rows smoothly without overwhelming your computer's memory.

🎉 You seamlessly blend remote and local data

You can now pull data from remote DuckDB servers and combine it with your local data tools, all working together effortlessly.

Sign up to see the full architecture

5 more

Sign Up Free

Star Growth

See how this repo grew from 13 to 13 stars Sign Up Free
Repurpose This Repo

Repurpose is a Pro feature

Generate ready-to-use prompts for X threads, LinkedIn posts, blog posts, YouTube scripts, and more -- with full repo context baked in.

Unlock Repurpose
AI-Generated Review

What is adbc-driver-quack?

An ADBC driver written in Go that lets you query remote DuckDB instances over the Quack protocol. Instead of connecting to a local database file, you connect to a DuckDB server running `quack_serve()` and get results streamed back as Apache Arrow RecordBatches. It ships as both a Go module (`go get github.com/gizmodata/adbc-driver-quack`) and a Python wheel (`pip install adbc-driver-quack`), so you can use it from either language. The driver handles bulk-ingest via the standard ADBC `Statement.BindStream` path, sending Arrow data to the server as `APPEND_REQUEST` messages.

Why is it gaining traction?

The Arrow-native result path is the main draw. You get `pyarrow.Table` objects straight from a remote server without serialization round-trips, which makes it natural to chain into Polars, Pandas, or ibis. The streaming API (`fetch_record_batch()`) keeps memory bounded by the server's chunk size even for million-row queries. For teams already using DuckDB's Quack extension, this fills the gap between "DuckDB as a server" and "my Python/Go app wants Arrow data without an in-process database."

Who should use this?

Python and Go developers who want to query a shared DuckDB server and process results with Arrow-native tooling. Data engineers building ETL pipelines that pull from a central DuckDB instance rather than exporting CSVs. Anyone running DuckDB as a server and wanting to avoid the JDBC path for non-JVM environments.

Verdict

This is a niche but well-targeted project for teams already invested in DuckDB's remote protocol. The Go implementation is clean, the Python wrapper is straightforward, and the Arrow output path is genuinely useful. At 13 stars and alpha status, the credibility score of 0.8999999761581421% reflects a small but active project. Documentation is solid for an early-stage library, and the test setup includes both hermetic unit tests and integration tests against a live Quack server. Worth trying if your stack fits the use case, but treat it as alpha and test thoroughly before production use.

Sign up to read the full AI review Sign Up Free

Similar repos coming soon.