<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/quack-duckdb-s-new-client-server-protocol-for-concurrent-writes-and-bulk-transfers-af6u3hqtf" -->

---
title: Quack: DuckDB&#x27;s new client-server protocol for...
description: DuckDB Labs has released Quack, a new client-server protocol shipping as a core extension in DuckDB v1.5.3. It solves DuckDB&#x27;s single-writer limitation by...
canonical: https://daily.dev/posts/quack-duckdb-s-new-client-server-protocol-for-concurrent-writes-and-bulk-transfers-af6u3hqtf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Quack: DuckDB&#x27;s new client-server protocol for concurrent writes and bulk transfers | daily.dev
og:description: DuckDB Labs has released Quack, a new client-server protocol shipping as a core extension in DuckDB v1.5.3. It solves DuckDB&#x27;s single-writer limitation by...
og:url: https://daily.dev/posts/quack-duckdb-s-new-client-server-protocol-for-concurrent-writes-and-bulk-transfers-af6u3hqtf
og:image: https://api.daily.dev/og/posts/aF6u3HQtF.png
og:image:alt: Quack: DuckDB&#x27;s new client-server protocol for concurrent writes and bulk transfers
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quack: DuckDB's new client-server protocol for concurrent writes and bulk transfers

**[Collections](https://daily.dev/sources/collections)** · 3 min read · 2 upvotes · 0 comments

## Summary

DuckDB Labs has released Quack, a new client-server protocol shipping as a core extension in DuckDB v1.5.3. It solves DuckDB's single-writer limitation by routing writes through a server process, enabling multiple instances to read and write concurrently over HTTP using DuckDB's internal serialization format. Benchmarks show 60 million rows transferred in under 5 seconds, outperforming PostgreSQL and Arrow Flight SQL for bulk transfers. The current security model is basic (shared token auth, no HTTPS by default, localhost-only binding), making it suitable for internal tooling but not multi-tenant production use yet. v1.5.3 also adds AWS web_identity chain support, Iceberg MERGE INTO and partitioned table writes, and statically linked jemalloc on Linux. A production release is planned alongside DuckDB v2.0 in fall 2026, with MotherDuck planning to support Quack as an endpoint type with added enterprise features.

## Content

DuckDB Labs has released Quack, a new client-server protocol for DuckDB that ships as a core extension in v1.5.3. It's a meaningful architectural addition for anyone who's hit DuckDB's single-writer limitation.

## What Quack does

DuckDB is an in-process database, which means only one process can write to a database file at a time. Quack works around this by routing writes through a server process, letting multiple DuckDB instances read and write to the same database concurrently over HTTP.

The protocol uses DuckDB's own internal serialization format (with a custom `application/duckdb` MIME type), which is why the bulk transfer benchmarks look good: 60 million rows in under 5 seconds, faster than both PostgreSQL and Arrow Flight SQL for bulk transfers. For small concurrent writes up to 8 threads, it also beats PostgreSQL.

Quack runs on port 9494 by default and auto-installs on first use. Authentication uses random shared tokens, and by default it only binds to localhost. For internet-facing deployments, the recommendation is to put nginx in front of it.

## Current limitations

The security model is basic: shared token authentication, no HTTPS by default, no per-user access control. It's fine for internal tooling or local development, but not ready for multi-tenant production use as-is.

DuckLake already supports Quack as its catalog database, which is a useful integration if you're using DuckLake for lakehouse-style workflows.

## What's in v1.5.3 beyond Quack

Despite being a patch release, 1.5.3 ships a few other notable changes:

- The AWS extension gains `web_identity` chain support for IRSA and IAM authentication for RDS/Aurora PostgreSQL
- The HTTPS extension now respects `HTTP_PROXY` for proxied environments
- The Iceberg extension gets `MERGE INTO` support, `INSERT`/`UPDATE` on partitioned tables, `CTAS` via ADBC, `ALTER TABLE` support, `GEOMETRY` type support, and schema property management functions
- On Linux, jemalloc is now statically linked into core DuckDB rather than shipped as a separate extension

## The road ahead

A production release is planned alongside DuckDB v2.0 in fall 2026, with replication support and deeper DuckLake integration on the roadmap.

MotherDuck, the cloud-hosted DuckDB service, has said it plans to support Quack as an endpoint type. Their pitch is that self-hosted Quack handles the basics, while MotherDuck layers on multi-user permissions, SSO, storage/compute separation, serverless scaling, and SLAs for teams that need more than a single-server setup.

For most DuckDB users doing local analytics, none of this changes anything. But if you've been working around the single-writer constraint with workarounds or just avoiding concurrent writes entirely, Quack is worth a look.

## Similar posts on daily.dev

- [DuckDB Quack: Client/Server Protocol over HTTP for Multi-User Analytics](https://daily.dev/posts/duckdb-quack-client-server-protocol-over-http-for-multi-user-analytics-kclxrezzv) · InfoQ · 1 upvotes · 0 comments

---

Tags: [#duckdb](https://daily.dev/tags/duckdb)

[View this post on daily.dev](https://daily.dev/posts/quack-duckdb-s-new-client-server-protocol-for-concurrent-writes-and-bulk-transfers-af6u3hqtf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Quack: DuckDB's new client-server protocol for concurrent writes and bulk transfers","url":"https://daily.dev/posts/quack-duckdb-s-new-client-server-protocol-for-concurrent-writes-and-bulk-transfers-af6u3hqtf","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/quack-duckdb-s-new-client-server-protocol-for-concurrent-writes-and-bulk-transfers-af6u3hqtf"},"datePublished":"2026-05-13T17:28:34.907Z","dateModified":"2026-05-20T12:02:34.165Z","description":"DuckDB Labs has released Quack, a new client-server protocol shipping as a core extension in DuckDB v1.5.3. It solves DuckDB's single-writer limitation by...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5655597cdba09adeb843c137b6e4bf88?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5655597cdba09adeb843c137b6e4bf88?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collections","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collections","logo":"https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0","url":"https://daily.dev/sources/collections"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/quack-duckdb-s-new-client-server-protocol-for-concurrent-writes-and-bulk-transfers-af6u3hqtf","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"duckdb","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collections","item":"https://daily.dev/sources/collections"},{"@type":"ListItem","position":3,"name":"Quack: DuckDB's new client-server protocol for concurrent writes and bulk transfers"}]}
```

