Quack: Turn DuckDB into a client-server database

janandonly1 pts0 comments

Quack Remote Protocol – DuckDB

Support

Search Shortcut cmd + k | ctrl + k

Beta release available now

Quack: Turn DuckDB<br>into a client-server database

The Quack protocol unlocks multi-client access for DuckDB,

turning it into a general-purpose database system

Read the announcement<br>Get started

Quack protocol

Client-server access · Beta release

Storage -->

Storage<br>DuckDB database file<br>DuckLake<br>Flat files

Introducing Quack

Hannes Mühleisen introduced Quack at AI Council 2026.

Watch his talk, the “Super-Secret Next Big Thing for DuckDB”.

Architecture

Clients

DuckDB client<br>Quack extension

SELECT * FROM orders LIMIT 5;

┌──────┬───────────┬─────────┐<br>│ id │ product │ total │<br>│ 1 │ widget │ 42.00 │<br>└──────┴───────────┴─────────┘

DuckDB client<br>Quack extension

INSERT INTO orders VALUES<br>(3, 'tool', 29.99);

1 row inserted.

quack:

quack:

Server

DuckDB server<br>Quack extension

CALL quack_serve();

listening on port 9494

2 active connections

catalog: my_database.duckdb

read/write

Storage

DuckDB

DuckLake

my_database.duckdb

128 MB · last write 0.3s

TABLES<br>VIEWS<br>ACID TRANSACTIONS<br>PRIMARY KEYS<br>INDEXES

my_ducklake

Catalog database

Object storage

Parquet file

Parquet file

128 MB · last write 0.5s

TABLES<br>VIEWS<br>ACID TRANSACTIONS<br>SNAPSHOTS<br>TIME TRAVEL

How it works

Client-server setup

You can take any two DuckDB processes on a network and turn them into client and server by using the Quack extension. The Quack protocol supports the full DuckDB feature set – over the wire.

Optimized for performance

We designed the Quack protocol for performance. We minimized the number of round trips, and ensured that the protocol can handle small updates and large batches just as well.

Try Quack today

Install and configure Quack in seconds

Command line

Python

AWS CloudFormation

-->

Step 1

Install DuckDB

curl https://install.duckdb.org | sh

Step 2

Launch Quack on the server

CALL quack_serve(<br>'quack:localhost',<br>token = 'super_secret'<br>);

CREATE TABLE hello AS<br>FROM VALUES ('world') v(s);

Step 3

Connect from the client

CREATE SECRET (<br>TYPE quack,<br>TOKEN 'super_secret'<br>);

ATTACH 'quack:localhost' AS remote;<br>FROM remote.hello;

Step 1

Install DuckDB

pip install duckdb

Step 2

Install the Quack extension

# TODO: Install the Quack extension

Step 3

Start the server

# TODO: Start the server

Step 1

Deploy via CloudFormation

aws cloudformation create-stack \<br>--stack-name my-quack-demo \<br>--template-url https://duckdb-quack-ami.s3.us-east-1.amazonaws.com/quack.yaml \<br>--region us-east-2

More deployment options

Frequently asked questions

What is Quack?

Quack allows DuckDB to connect to a DuckDB server through the quack: protocol. You can think of Quack as a Remote Procedure Call (RPC) protocol for DuckDB. Quack enables DuckDB instances to talk to each other, effectively turning DuckDB into a client-server database management system, where both the client and the server are DuckDB instances.

Why is it called Quack?

Mallard ducks communicate by quacking, so it's only fair that DuckDB instances communicate through the protocol quack.

When should I use Quack?

Quack can be beneficial in a number of scenarios, including the following:

You need concurrent read-write access to the same DuckDB database.

Your data is on a server and you want to move the computation as close to the data as possible.

You have a powerful server that can process the data but would like to see the results on your local computer.

And many more – we are excited to see what the community comes up with.

Can I use DuckDB with Quack for transactional (OLTP) workloads?

Yes. DuckDB with Quack can handle a few thousand writes per second on a server with 8 CPUs and 32 GB RAM. See the benchmarks in our announcement blog post.

Can I still run DuckDB as an in-process database?

Yes, DuckDB as an in-process database will continue working just as it did before, and we will treat the in-process deployment model as a first-class citizen in the DuckDB ecosystem.

More FAQs

Quack in the DuckDB ecosystem

Client-server DuckDB

Quack turns DuckDB into a client-server database for multi-writer and remote access.

DuckLake server

Quack supports querying DuckLake and other data lake formats.

Community extensions

Quack works with all DuckDB extensions, including the Community Extension ecosystem.

quack duckdb server client database protocol

Related Articles