Skip to content

[experimental / tracking] DuckDB Quack remote protocol as optional accelerator #216

@rdhyee

Description

@rdhyee

Status: Tracking only — not committing to implement. Filed so we don't lose the thread.

What

DuckDB announced Quack Remote Protocol (2026-05-12) — an HTTP-based client-server protocol that lets DuckDB instances (including DuckDB-WASM in the browser) attach to a remote DuckDB server and run queries against shared databases.

  • Server: quack_serve() on port 9494, token-auth, recommended behind nginx for SSL
  • Wire format: application/duckdb MIME, DuckDB's internal binary serialization
  • Browser DuckDB-WASM can connect directly
  • Status: extension in core_nightly for v1.5.2; production release planned for DuckDB v2.0, fall 2026

Where it might help iSamples

Our current explorer is static + DuckDB-WASM + parquet range requests on R2. Quack would let us optionally offload heavy work to a server returning compact binary results:

  • Aggregations over the 106M-row narrow file (isamples_202512_narrow.parquet, ~844MB)
  • Server-side cross-dataset joins without forcing both files down to each client
  • Cesium globe bbox filtering as SQL → compact result, skipping parquet metadata round-trips
  • An ad-hoc SQL endpoint at data.isamples.org for programmatic Python access

Why we're not pursuing now

  • Pre-1.0; production release ~6 months out (fall 2026)
  • Cuts against our "zero-server static-first" architecture story
  • Adds devops: SSL, uptime, token rotation, keeping server datasets in sync with R2 publish pipeline
  • Current browser performance on R2 parquet is already good (sub-second on the 282MB wide file)

If we ever pursue it

Right shape is an optional accelerator, not a replacement:

  • data.isamples.org:9494 behind nginx, wrapping the same R2 parquets read-only
  • Explorer tries Quack first, falls back to parquet range requests
  • Benchmark Quack vs. range requests on the five queries the explorer actually runs before any UI changes

Revisit when

  • DuckDB v2.0 ships and Quack is stable (fall 2026), OR
  • We hit a concrete query that's genuinely slow in the browser-only path

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions