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
Quack protocol
Client-server access · Beta release
Quack allows two DuckDB processes to talk to each other over the network, enabling a client-server setup (and more). The Quack protocol supports the full DuckDB feature set.
Set up QuackWe designed the Quack protocol for performance. We minimized the number of round trips, and ensured that the protocol can handle both small updates and large batches of changes.
See the benchmarksIntroducing Quack
Hannes Mühleisen introduced Quack at AI Council 2026.
Watch his talk, the “Super-Secret Next Big Thing for DuckDB”.
Architecture
Clients
SELECT * FROM orders LIMIT 5;┌──────┬───────────┬─────────┐
│ id │ product │ total │
│ 1 │ widget │ 42.00 │
└──────┴───────────┴─────────┘INSERT INTO orders VALUES
(3, 'tool', 29.99);1 row inserted.Server
CALL quack_serve();Storage
Try Quack today
Install and configure Quack in seconds
Step 1
Install DuckDB
curl https://install.duckdb.org | bashStep 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;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.
Quack in the DuckDB ecosystem
Quack turns DuckDB into a client-server database for multi-writer and remote access.
Read the docsQuack works with all DuckDB extensions, including the Community Extension ecosystem.
Browse extensions