The real-time distributed SQL database for data-intensive applications

DuckDB
MIT-licensed analytical SQL database that runs inside your process, with no server, no dependencies and one writer at a time.
As of 13 November 2026, DuckDB is free to use. DuckDB does for analytics what SQLite did for transactions: a columnar query engine in a library, reading Parquet, CSV and Arrow directly from disk or object storage. Softwr lists it under Databases. DuckDB is made by DuckDB Labs, launched in 2019, available on Linux, macOS, Windows, Web.
Overview
What DuckDB does
DuckDB is an in-process analytical database. It originated at CWI in Amsterdam, the intellectual property is held by a non-profit foundation and commercial support comes from DuckDB Labs, with the code under the MIT licence. You install it as a library in Python, R, Java, Node, Rust, Go or C++, or run its command line shell, and it executes columnar, vectorised SQL inside your own process with no server to start and no dependencies to install. It reads Parquet, CSV, JSON and Arrow directly, including files on S3 and other object stores, so it can query data where it sits without a load step, and it has its own storage format for persisted databases which has been backwards compatible since version 1.0 in 2024. Extensions add Postgres, MySQL and SQLite attachment, spatial types, full-text search and open table formats. What makes it hard to argue with is that it removed a whole category of infrastructure from analytical work. Before it, a query over ten gigabytes of Parquet meant a Spark cluster, a warehouse or a machine full of pandas; DuckDB answers it on a laptop, from inside the process that needed the answer, with SQL and no cluster. The commercial effect is unusual for a database: there is very little to lock into. The licence is MIT, the SQL is close to standard with Postgres-flavoured ergonomics, and the data is usually Parquet you already own, so adopting it is close to reversible. The commercial ecosystem sits beside it rather than under it, with MotherDuck offering a managed and hybrid service built on the engine. The buyers are data engineers, analysts and application developers who want warehouse-shaped queries without warehouse infrastructure: transformation steps in a pipeline, analytics embedded in an application, local exploration of files that are too large for a dataframe. The trade-off is concurrency. A DuckDB database file is opened read-write by exactly one process at a time; others may open it read-only, and they do not see writes made after they opened it. There is no network protocol and no user management, so it is a library your application embeds, not a database several services share. If more than one writer needs the same data, DuckDB is the wrong shape and the answer is Postgres, a warehouse, or a table format on object storage with a catalogue.
What people use it for
- Transformation steps in a data pipeline that would otherwise need Spark, replaced by SQL over Parquet in a single process
- Analytical queries embedded in an application or a dashboard where shipping a database server alongside it is not acceptable
- Local exploration of files that are too large for a pandas dataframe but far too small to justify a warehouse
- Continuous integration and testing of analytical SQL, where a real engine can run in the test process without provisioning anything
Related searches
The honest half
Where it falls short
Concrete and checkable, so you can decide whether any of them matter to you. This is the half of a review a vendor will not write about DuckDB.
- A database file accepts one read-write process at a time; other processes must open it read-only and will not see subsequent writes, so DuckDB cannot be the shared database behind several services.
- There is no network protocol, authentication or user management, so exposing it to remote clients means writing and securing your own service around it.
- It is built for scans and aggregations, not for many small transactions, so a workload of high-frequency single-row inserts and updates performs badly compared with SQLite or Postgres.
- Storage files are backwards compatible but not forwards compatible, so a file written by a newer version cannot be read by an older one and every consumer of a shared file must be upgraded together.
- Query memory settings matter: some operations still need to hold significant state, so an under-configured memory limit turns a large join or a high-cardinality aggregation into a spill-heavy query or an out-of-memory failure rather than a slow success.
Capabilities
Features
In-process execution
Runs as a library inside your application with no server, daemon or network hop
Vectorised columnar engine
Batch-at-a-time execution designed for scans, joins and aggregations rather than single-row lookups
Direct file querying
Reads Parquet, CSV, JSON and Arrow in place, locally or on object storage, without an import step
Zero dependencies
Ships as a single self-contained library, which makes it trivial to add to a container or a notebook
Larger-than-memory queries
Spills intermediate results to disk so many workloads exceed available RAM without failing
MIT licence
Permissive licence with no competing-use restriction and a non-profit foundation holding the IP
Postgres-flavoured SQL
Familiar dialect with analytical conveniences such as window functions, list types and friendly aggregate syntax
Extension ecosystem
Attach Postgres, MySQL and SQLite, plus spatial, full-text search and open table format support
Stable storage format
Database files have been backwards compatible since version 1.0, so upgrades no longer require export and reimport
Language bindings
First-class clients for Python, R, Java, Node, Rust, Go, C and C++ and a standalone shell
Answered, with sources
Questions people ask
Each answer names the page it came from, so you can check it rather than take our word for it.
Can multiple applications share one DuckDB database?
Not for writing. One process holds the database read-write; others may attach read-only and will not see later writes. Shared multi-writer access needs a different database or a table format with a catalogue.
Is it a replacement for a data warehouse?
For single-node analytical workloads up to a few hundred gigabytes it very often is. It is not a replacement when many concurrent users need a shared, governed, always-on service.
Do I have to load data into it?
No. It queries Parquet, CSV, JSON and Arrow in place, including on object storage. Its own storage format is optional and mainly useful when you want indexes, constraints and faster repeated access.
What is MotherDuck's relationship to it?
MotherDuck is a separate company offering a managed and hybrid service built on the DuckDB engine. DuckDB itself remains MIT-licensed and independent of it, with the IP held by the DuckDB Foundation.
Is it suitable for OLTP?
No. It is designed for analytical scans. For transactional workloads with frequent small writes, SQLite or Postgres is the right tool.
Behind it
Who makes DuckDB
- Company
- DuckDB Labs
- Based in
- Amsterdam, Netherlands
Keep looking
Where to go from DuckDB
- DuckDB alternativesEvery product people weigh against it
- DuckDB pricingPlans, floors and what the tiers exclude
- DuckDB badgesWhich rules it meets, and the figure behind each
- All Databases softwareThe full category
- Best Databases softwareThe shortlist, and how it was cut
Best Databases software for
Compare DuckDB with
- SingleStore
- SQLite
- ClickHouse
- Apache Druid
- Firebolt
- OpenSearch
- StarRocks
- QuestDB
- BigQuery
- Elasticsearch
- Materialize
- Oracle Database
- TimescaleDB
- Trino
- Turso
- Amazon RDS
- Apache Pinot
- Apache Flink
Other Databases software
- Free, then $0.99/mo14 researched notes
Fast open-source column-oriented database for real-time analytics
Free plan12 researched notesOpen-source search and analytics suite forked from Elasticsearch
Open source9 researched notesApache 2.0 MPP analytical database built for joins on open table formats
Open source12 researched notesFast open source time-series database for high throughput ingestion
Free plan6 researched notesGoogle Cloud's serverless analytical warehouse, billed either by bytes scanned per query or by reserved compute slots.
Free plan13 researched notesThe heart of the Elastic Stack for search and analytics
Free, then $16.4/mo11 researched notesLive context layer for AI agents using real-time SQL transformations
Free, then $1.5/compute-credit10 researched notes- Free, then $47,500/processor10 researched notes
Time-series database built on PostgreSQL for real-time analytics
Free plan12 researched notesA distributed SQL engine that queries data where it already lives, across object storage, warehouses and operational databases.
Free plan11 researched notesSQLite-lineage database platform for running very large numbers of small per-tenant databases, with an MIT-licensed engine.
Free, then $4.99/mo10 researched notes
Softwr does not host reviews and shows no star rating for DuckDB, because a rating we did not collect is not ours to publish. What is here is the pricing and platform detail from the vendor’s own pages, limitations we could state concretely, and alternatives a reviewer confirmed people weigh against it. Tell us if any of it is wrong.
More on DuckDB
DuckDB alternatives
What people switch to, and what they give up
DuckDB pricing
Every tier, and where the cost actually lands
Compare DuckDB
Put it head to head with anything we hold
DuckDB badge
Its rating, and an embed for your own site
Best Databases software alternatives
Industrial process historian with published per-tag pricing and no client licence fees
Per tag band per yearNetApp-owned managed service for Cassandra, Kafka, OpenSearch, PostgreSQL and Cadence with a bring-your-own-cloud model
quoteErlang MQTT broker for large IoT fleets, relicensed to BSL with production free use limited to one node
Per month by connection and session volumeAttribute-based access control and masking applied inside Snowflake, Databricks and BigQuery
quoteMPP analytical database with a MySQL wire protocol and sub-second aggregation on wide tables
Open source, no licence feeStreaming database that maintains incremental materialised views in SQL instead of Flink jobs
Per RisingWave Unit hourCentralised data access governance from the creators of Apache Ranger, now rebranding as Trust3 AI
quoteThe Meta-lineage distributed SQL query engine, distinct from the Trino fork
Open source, no licence fee
























