Beta release available now

Quack: Turn DuckDB
into a client-server database

The Quack protocol unlocks multi-client access for DuckDB,
turning it into a general-purpose database system

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

Step 1

Install DuckDB

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

Step 2

Launch Quack on the server

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

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

Step 3

Connect from the client

CREATE SECRET (
    TYPE quack,
    TOKEN 'super_secret'
);

ATTACH 'quack:localhost' AS remote;
FROM remote.hello;

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.

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

Yes. DuckDB as an in-process database continues to work as before, and remains a first-class deployment model.

More FAQs