Softwr
DuckDB logo

DuckDB

MIT-licensed analytical SQL database that runs inside your process, with no server, no dependencies and one writer at a time.

As of 30 August 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

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.

Cross-shopped

What people choose instead of DuckDB

Each pairing was judged by two reviewers asking whether a buyer would genuinely weigh the two against each other. The ones that failed were deleted rather than published.

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
Share

Keep looking

Where to go from DuckDB

Best Databases software for

Compare DuckDB with

Other Databases software

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

    Free, then $0.99/mo14 researched notes
  • Small, fast, self-contained SQL database engine

    Free plan10 researched notes
  • The world's most advanced open source relational database

    Free plan11 researched notes
  • The cloud-native distributed SQL database

    Free plan14 researched notes
  • Create apps that perfectly fit your team's needs

    Free, then $20/month per editor11 researched notes
  • MySQL and PostgreSQL-compatible relational database built for the cloud

    Free plan12 researched notes
  • Fast open-source column-oriented database for real-time analytics

    Free plan12 researched notes
  • Real-time analytics database for sub-second OLAP queries

    Free plan10 researched notes
  • Sub-second analytics at cloud data warehouse scale

    From $1.84/hour14 researched notes
  • Open-source search and analytics suite forked from Elasticsearch

    Open source9 researched notes
  • Apache 2.0 MPP analytical database built for joins on open table formats

    Open source12 researched notes
  • Cross-platform database IDE from JetBrains for SQL and NoSQL databases

    Free, then $8.25/mo12 researched notes
  • Real-time data integration combining streaming, CDC, and batch

    Free, then $0.5/GB10 researched notes
  • Real-time distributed OLAP datastore for analytics

    Free plan11 researched notes
  • Sub-second analytics at cloud data warehouse scale

    From $1.84/hour14 researched notes
  • Cloud-native messaging and streaming with separated storage

    Open source10 researched notes
  • Manage massive amounts of data with linear scalability

    Free plan15 researched notes
  • Seamless multi-master sync with Apache CouchDB

    Free plan11 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

Best Databases software alternatives

Industrial process historian with published per-tag pricing and no client licence fees

Per tag band per year

NetApp-owned managed service for Cassandra, Kafka, OpenSearch, PostgreSQL and Cadence with a bring-your-own-cloud model

quote

Erlang MQTT broker for large IoT fleets, relicensed to BSL with production free use limited to one node

Per month by connection and session volume

Attribute-based access control and masking applied inside Snowflake, Databricks and BigQuery

quote

MPP analytical database with a MySQL wire protocol and sub-second aggregation on wide tables

Open source, no licence fee

Streaming database that maintains incremental materialised views in SQL instead of Flink jobs

Per RisingWave Unit hour

Centralised data access governance from the creators of Apache Ranger, now rebranding as Trust3 AI

quote

The Meta-lineage distributed SQL query engine, distinct from the Trino fork

Open source, no licence fee

Compare DuckDB with alternatives