BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News DuckDB's WebAssembly Client Allows Querying Iceberg Datasets in the Browser

DuckDB's WebAssembly Client Allows Querying Iceberg Datasets in the Browser

Listen to this article -  0:00

DuckDB has recently introduced end-to-end interaction with Iceberg REST Catalogs directly within a browser tab, requiring no infrastructure setup. The new feature leverages DuckDB-Wasm, a WebAssembly port of DuckDB that runs in the browser, allowing users to query, read, and write Iceberg tables in a serverless manner.

Carlo Piovesan and Tom Ebergen, software engineers at DuckDB, and Gábor Szárnyas, head of DevRel at DuckDB, write:

While setting up a local DuckDB installation is quite simple, opening a browser tab is even quicker. Therefore, we asked ourselves: could we support the client-is-the-server model directly from within a browser tab? This could provide a zero-setup, no-infrastructure, properly serverless option for interacting with Iceberg catalogs.

According to the "Iceberg in the Browser" article, the DuckDB team redesigned HTTP interactions across the codebase, implemented a JavaScript networking wrapper in DuckDB-Wasm, and routed all Iceberg networking through a common interface, ensuring that both native DuckDB and the browser versions execute identical logic:

Interacting with an Iceberg REST Catalog requires a number of functionalities; the ability to talk to a REST API over HTTP(S), the ability to read and write avro and parquet files on object storage, and finally, the ability to negotiate authentication to access those resources on behalf of the user. All of these must be done from within a browser without calling any native components.

DuckDB is an open-source (MIT licensed) analytical database management system designed for fast querying of large datasets directly on a local machine, often described as "SQLite for analytics." DuckDB-Wasm is a WebAssembly port of DuckDB that supports loading extensions. To showcase the new feature, DuckDB has introduced a table visualizer demo that currently works with Amazon S3 Tables.

Earlier in 2025, DuckDB added support for Apache Iceberg REST Catalogs, enabling DuckDB users to connect to Amazon S3 Tables and Amazon SageMaker Lakehouse. While the community's reaction has been overwhelmingly positive, some users have questioned the lack of support for other cloud providers.

Using the demo, users can substitute their own S3 Tables bucket ARN and credentials to access their own catalogs, metadata, and data, with all computations running locally in the browser. Credentials and warehouse IDs are sent only to the specified catalog endpoint, with SQL queries translated and added to the URL's hash segment. Andrew Warfield, VP and distinguished engineer at Amazon, comments:

A really fun blog post from DuckDB about building browser-based apps with Duck that can operate directly against Iceberg Tables in S3 Tables. The table visualization demo (...) runs against live table data in S3 - super cool!

Piovesan, Ebergen, and Szárnyas add:

This means that: no sensitive data is handled or sent to duckdb.org. Computations are local, fully in your browser. You can use the familiar SQL interface with the same code snippets that can run everywhere DuckDB runs.

A demo of DuckDB querying S3 Tables from a browser was presented as part of the session "Amazon S3 Tables architecture, use cases, and best practices" at AWS re:Invent 2025.

About the Author

Rate this Article

Adoption
Style

BT