DuckDB معمولاً بهصورت یک database درون برنامه اجرا میشود و به server جداگانه نیاز ندارد. DuckDB 2.0 در کنار این شیوه، حالت client-server را با Protocol موسوم به Quack ارائه میکند: یک نمونه DuckDB به queryهای نمونهای دیگر از طریق شبکه پاسخ میدهد. هر دو سمت همان DuckDB هستند؛ نه برنامه جداگانهای برای server لازم است و نه زبان تازهای برای query.
این حالت برای دسترسی چند process به دادههای مشترک کاربرد دارد. فایل DuckDB در حالت معمول single-writer است؛ اما با اجرای server محلی، workerهای یک برنامه وب، dashboard و notebook میتوانند همزمان دادههای مشترک را query کنند. query در محل داده اجرا میشود و client فقط نتیجه را دریافت میکند، نه کل مجموعه داده. اتصال JDBC نیز میتواند نقش client را برای یک برنامه Java داشته باشد.
آموزش به نسخه v2.0.0 یا جدیدتر نیاز دارد. extension رسمی quack هنگام اولین استفاده خودکار نصب و بارگذاری میشود. برای شروع، در terminal اول دستور duckdb hello.duckdb یک database مبتنی بر فایل باز میکند. سپس CALL quack_serve('quack:localhost', token = 'super_secret');، server را راه میاندازد. دستور CREATE TABLE hello AS FROM VALUES ('world') v(s); هم داده نمونه را میسازد. port پیشفرض 9494 است و این terminal باید باز بماند.
token راز مشترک اتصال است. اگر تعیین نشود، Quack مقدار تصادفی تولید میکند و آن را در ستون auth_token برمیگرداند. در terminal دوم، یک DuckDB تازه اجرا میشود و دستور CREATE SECRET (TYPE quack, TOKEN 'super_secret', SCOPE 'quack:localhost'); اطلاعات اتصال را نگه میدارد. سپس ATTACH 'quack:localhost' AS remote; و FROM remote.hello; یک سطر شامل world برمیگردانند.
با CONNECT remote; تمام session به server هدایت میشود و دیگر نوشتن پیشوند remote. لازم نیست؛ DISCONNECT; آن را به database محلی برمیگرداند. برای یک query مستقل نیز quack_query بدون ATTACH قابل استفاده است. توقف server با CALL quack_stop('quack:localhost'); انجام میشود.
برای اتصال از ماشین دیگر، تنظیم allow_other_hostname لازم است. اتصال غیرمحلی بهطور پیشفرض از HTTPS و certificate از نوع self-signed استفاده میکند؛ برای production، منبع استفاده از TLS-terminating reverse proxy یا certificate اختصاصی را مطرح میکند. در Java نیز همان دستورهای CREATE SECRET و ATTACH از طریق JDBC اجرا میشوند.



