explaingit

gizmodata/adbc-driver-quack

Analysis updated 2026-05-18

14GoAudience · developerComplexity · 3/5Setup · moderate

TLDR

A driver that connects to a remote DuckDB database and returns query results in a fast, shareable Arrow data format.

Mindmap

mindmap
  root((adbc quack))
    What it does
      Remote DuckDB access
      Arrow formatted results
      Streaming batches
    Tech stack
      Go
      Python
      DuckDB
      Apache Arrow
    Use cases
      Remote queries
      Bulk ingest
      Data pipelines
    Audience
      Data engineers
      Backend developers
      Analysts

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Query a remote DuckDB server from Python or Go and get results as Arrow tables.

USE CASE 2

Stream large query results in small batches without high memory use.

USE CASE 3

Bulk load Arrow data you already hold in memory into a remote DuckDB table.

USE CASE 4

Hand query results directly to Polars or Pandas without extra conversion steps.

What is it built with?

GoPythonDuckDBApache ArrowADBC

How does it compare?

gizmodata/adbc-driver-quackgokele/ovhgotoolsharing/vbkview
Stars141414
LanguageGoGoGo
Setup difficultymoderatemoderatemoderate
Complexity3/53/53/5
Audiencedeveloperops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a running DuckDB server with the Quack extension loaded and a secret token.

In plain English

DuckDB is a fast, embedded database popular with data engineers and analysts. One of its features is the Quack protocol, a way to run a DuckDB instance as a remote server that other programs can connect to over the network. This project, adbc-driver-quack, is a driver that lets you connect to that remote DuckDB server using a standard called ADBC (Apache Arrow Database Connectivity). ADBC matters because it is designed specifically to return data in Apache Arrow format, a column oriented, in memory data layout that moves large datasets between tools without copying or converting them. That means query results arrive as Arrow RecordBatches, which you can immediately hand to data tools that understand Arrow natively, such as Polars, Pandas, or DuckDB running in a local process, all without an expensive serialization step in between. In practice: you start a DuckDB session on a server, install and load the Quack extension, and call one command to make it listen on a port. You then connect from your Python or Go code using a URI like quack://localhost:9494 plus a secret token, and run SQL queries whose results come back as Arrow tables. For large datasets, a streaming mode lets you process one small batch at a time, roughly 2,000 rows per batch, so memory usage stays bounded regardless of result size. You can also push data into the remote DuckDB: the driver supports a bulk ingest path that creates or appends to tables from Arrow data you already have in memory. Available as a Python pip package, supporting macOS, Linux, and Windows on x64 and arm64, and as a Go module. Currently alpha, version 0.1.0-alpha.1. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Show me how to connect to a remote DuckDB server using adbc-driver-quack from Python.
Prompt 2
Help me set up streaming mode so large query results don't blow up memory.
Prompt 3
Write a bulk-ingest example that pushes an Arrow table into a remote DuckDB.
Prompt 4
Explain how ADBC and Apache Arrow work together in this driver.

Frequently asked questions

What is adbc-driver-quack?

A driver that connects to a remote DuckDB database and returns query results in a fast, shareable Arrow data format.

What language is adbc-driver-quack written in?

Mainly Go. The stack also includes Go, Python, DuckDB.

How hard is adbc-driver-quack to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is adbc-driver-quack for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.