duckdb-wasm
DuckDB-Wasm is a WebAssembly port of DuckDB that runs SQL analytics directly in browsers and Node.js without a backend server. It supports reading Parquet, CSV, JSON, and Arrow formats, plus remote database attachments over HTTP.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | duckdb/duckdb-wasm |
| Owner | duckdb |
| Primary language | C++ |
| License | MIT — OSI-approved |
| Stars | 2.1k |
| Forks | 215 |
| Open issues | 180 |
| Latest release | v1.33.0 (2025-12-16) |
| Last updated | 2026-06-29 |
| Source | https://github.com/duckdb/duckdb-wasm |
What duckdb-wasm is
C++ codebase compiled to WebAssembly targeting in-process OLAP queries. Based on DuckDB v1.5.4, supports lazy extension loading, HTTP/HTTPS resource access (with CORS), single-threaded by default (experimental multithreading), and is sandboxed with limited out-of-core operations.
Get the duckdb-wasm source
Clone the repository and explore it locally.
git clone https://github.com/duckdb/duckdb-wasm.gitcd duckdb-wasm# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Extension bundles (spatial, JSON, Parquet, ICU) are lazy-loaded at runtime; initial shell queries may trigger multi-MB wasm transfers. Plan CDN/caching strategy.
- HTTP requests are upgraded to HTTPS and require CORS headers on remote servers; test cross-origin data access early in integration.
- Default single-threaded mode; multithreading is experimental. Validate performance on target hardware before relying on threaded queries.
- Database files attachable via HTTP (e.g., `ATTACH 'https://...' as db`), enabling remote DuckDB files as read-only data sources.
- Sandboxed filesystem and out-of-core limitations mean queries must fit data in available client memory; test data size assumptions.
When to avoid it — and what to weigh
- Large-scale multi-user transactional workloads — Sandboxed single-threaded execution and browser/Node.js resource limits make it unsuitable for high-concurrency OLTP scenarios.
- Persistent backend data layer required — DuckDB-Wasm is in-memory and ephemeral. For durable, shared data across sessions, integrate with a backend database (not built-in).
- Out-of-core analytics on massive datasets — Limited out-of-core support and browser memory constraints restrict processing to datasets that fit in client RAM.
- Strict security isolation from untrusted SQL — Running arbitrary user-supplied SQL in the browser has inherent sandbox escape risks; requires additional validation layer.
License & commercial use
MIT License. Permissive OSI-approved license allowing commercial use, modification, and distribution with attribution.
MIT explicitly permits commercial use without restrictions or royalties. Verify all dependencies (DuckDB itself, bundled extensions) also permit intended commercial use; no commercial license exceptions noted in provided data.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Strong |
| Assessment confidence | High |
Runs untrusted SQL in browser sandbox with inherent WebAssembly isolation. CORS validation required for remote data access; misconfigured origins expose data to malicious queries. User-supplied SQL should be validated/scoped. No cryptographic guarantees stated. Evaluate threat model before deploying to handle sensitive data.
Alternatives to consider
Apache Arrow JS (standalone)
Lighter-weight columnar compute library; no SQL engine. Choose if only data format transformation needed, not SQL analytics.
SQLite WASM
Simpler single-file database in browser; transactional, not OLAP-optimized. Better for structured storage; worse for analytical workloads.
Backend BI tools (Metabase, Superset)
Server-side analytics with persistent data, multi-user access, and enterprise features. Choose if centralized data governance required.
Build on duckdb-wasm with DEV.co software developers
Explore DuckDB-Wasm integration for dashboards, data exploration, and offline analytics. Start with the shell demo at shell.duckdb.org or review the API docs for implementation details.
Talk to DEV.coRelated on DEV.co
Explore the category and the services that help you build with it.
duckdb-wasm FAQ
Can I persist data across browser sessions?
Does DuckDB-Wasm support all DuckDB extensions?
What are the performance implications of running in WebAssembly?
Is DuckDB-Wasm suitable for production use?
Work with a software development agency
Adopting duckdb-wasm is usually one piece of a larger software development effort. As a software development agency, DEV.co provides software development services and web development expertise — pairing senior software developers and web developers with your team to design, build, and operate open-source databases software in production.
Ready to add SQL analytics to your web app?
Explore DuckDB-Wasm integration for dashboards, data exploration, and offline analytics. Start with the shell demo at shell.duckdb.org or review the API docs for implementation details.