$npx skillfedfor your agent

duckdb-engine

SQLAlchemy driver for duckdb

Worth itPyPI Front-EndsReleased Mar 20252.1M downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — duckdb_engine-0.17.0-py3-none-any.whl
v0.17.0 · released 2025-03-29 · Python <4,>=3.9 · 3 runtime deps: duckdb, packaging, sqlalchemy

Yes. The package has low install friction, active maintenance, no known vulnerabilities, and permissive licensing. It is a solid choice if you need SQLAlchemy integration with DuckDB. Be aware of PostgreSQL-derived dialect quirks (e.g., SERIAL not supported, use Sequence instead) and test edge cases involving advanced SQL features.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.9 or later; DuckDB does not support SERIAL datatype, so auto-incrementing IDs must use SQLAlchemy Sequence objects instead.
  • Low friction installation with three straightforward runtime dependencies (duckdb, packaging, sqlalchemy).
  • The package is actively maintained with recent commits and has been stable since its early releases.

License · maintenance · safety

MIT (permissive) — MIT license is permissive and places no restrictions on use, modification, or distribution in proprietary or open-source contexts.

last release 2025-03-29 (503 days) · last repo commit 2026-08-14 · 495 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,106,368 downloads/mo, #3,292 on PyPI

Verify before relying

from sqlalchemy import Column, Integer, Sequence, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.session import Session

Base = declarative_base()

class FakeModel(Base):
    __tablename__ = "fake"
    id = Column(Integer, Sequence("fakemodel_id_sequence"), primary_key=True)
    name = Column(String)

eng = create_engine("duckdb:///:memory:")
Base.metadata.create_all(eng)
session = Session(bind=eng)
session.add(FakeModel(name="Frank"))
session.commit()
  • Whether all DuckDB configuration parameters documented in DuckDB's configuration guide are fully supported through connect_args
  • Current status of pandas.read_sql() chunksize compatibility (note indicates it was resolved in duckdb >=0.5.0, but confirmation needed)
  • Extent of PostgreSQL feature parity and which specific SQL constructs may fail due to DuckDB's PostgreSQL parser limitations
Same gist for agents: .md · .json

What it is and what it does

duckdb_engine is a SQLAlchemy dialect that bridges DuckDB and SQLAlchemy, letting you write standard SQLAlchemy code against DuckDB databases. It works by registering itself as a SQLAlchemy driver, so you can create engines with the duckdb:// URL scheme and use the full ORM and expression language as you would with any other database. The package depends on duckdb, sqlalchemy, and packaging.

The driver supports both in-memory and file-backed DuckDB instances, pandas DataFrame registration, Alembic migrations, extension preloading, and fsspec filesystem registration. It derives from the PostgreSQL dialect, which means some PostgreSQL-specific features (like SERIAL auto-increment) are not directly supported and require workarounds such as SQLAlchemy Sequence objects. The package is designed for developers who want to use DuckDB's analytical capabilities within a familiar SQLAlchemy interface.

Use it for

  • Build data analysis pipelines using SQLAlchemy ORM against DuckDB for fast in-memory or persistent queries
  • Query pandas DataFrames registered with DuckDB using standard SQL through SQLAlchemy
  • Prototype or migrate applications from PostgreSQL to DuckDB by swapping the connection string
  • Run interactive SQL queries in Jupyter notebooks with IPython-SQL and duckdb_engine
  • Manage database schema evolution with Alembic migrations on DuckDB-backed applications

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

The package has low install friction, active maintenance, no known vulnerabilities, and permissive licensing. It is a solid choice if you need SQLAlchemy integration with DuckDB. Be aware of PostgreSQL-derived dialect quirks (e.g., SERIAL not supported, use Sequence instead) and test edge cases involving advanced SQL features.

Install

duckdb-engine on PyPI

Before you install

Low friction installation with three straightforward runtime dependencies (duckdb, packaging, sqlalchemy). The package is actively maintained with recent commits and has been stable since its early releases.

Requires Python 3.9 or later; DuckDB does not support SERIAL datatype, so auto-incrementing IDs must use SQLAlchemy Sequence objects instead.

License in practice

MIT license is permissive and places no restrictions on use, modification, or distribution in proprietary or open-source contexts.

Quickstart

from sqlalchemy import Column, Integer, Sequence, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.session import Session

Base = declarative_base()

class FakeModel(Base):
    __tablename__ = "fake"
    id = Column(Integer, Sequence("fakemodel_id_sequence"), primary_key=True)
    name = Column(String)

eng = create_engine("duckdb:///:memory:")
Base.metadata.create_all(eng)
session = Session(bind=eng)
session.add(FakeModel(name="Frank"))
session.commit()

Verify before relying

  • Whether all DuckDB configuration parameters documented in DuckDB's configuration guide are fully supported through connect_args
  • Current status of pandas.read_sql() chunksize compatibility (note indicates it was resolved in duckdb >=0.5.0, but confirmation needed)
  • Extent of PostgreSQL feature parity and which specific SQL constructs may fail due to DuckDB's PostgreSQL parser limitations

Package facts

LicenseMIT permissive
Python supportSupports the current Python release <4,>=3.9
Install frictionLow. Pure-Python wheel
Runtime dependencies
3 packages
duckdbpackagingsqlalchemy
MaintenanceActively maintained 503 days since the last release
Last repo commit
First released
Downloads2,106,368 / month, #3,292 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9

Evidence: duckdb_engine-0.17.0-py3-none-any.whl

Tags

Capabilities
sqlalchemy duckdb driverduckdb sql database adapterin-memory sql query engineduckdb orm integrationsqlalchemy dialect duckdbpython sql database connectorduckdb dataframe queries
Topics
sqlalchemy-dialectduckdb-integrationanalytics-sql

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “sqlalchemy duckdb driver”

Give your agent the search over MCP, or paste the wish link into any chat.

More Front-Ends packages

SQLAlchemy Worth it
PyPI · Front-Ends · released Aug 2026

SQLAlchemy is a Python SQL toolkit and Object Relational Mapper (ORM) that provides both a high-level ORM layer for declarative object persistence and a Core SQL construction system for direct database abstraction and query building.

permissive licensepure Python · 3.7+
422.7Mdownloads / mo
psycopg2-binary Worth it
PyPI · Software Development · released Apr 2026

psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.

copyleftcompiled wheel · 3.9+
271.6Mdownloads / mo
alembic Worth it
PyPI · Front-Ends · released Aug 2026

Alembic generates and manages database schema migrations for SQLAlchemy applications, handling version control of database structure changes with support for upgrades, downgrades, and auto-generation from model changes.

Install it if you use SQLAlchemy and need to version-control schema changes; skip it only if you manage migrations manually or use a different ORM entirely.

MITpure Python · 3.10+
215.2Mdownloads / mo
weaviate-client Worth it
PyPI · Front-Ends · released Aug 2026

A Python client library for connecting to and querying Weaviate, a vector database that enables semantic search and AI-powered data retrieval.

permissive licensepure Python · 3.10+
213.2Mdownloads / mo
databricks-sql-connector Worth it
PyPI · Front-Ends · released Jul 2026

A Python client library that connects to Databricks clusters and SQL warehouses using a Thrift-based protocol, conforming to the Python DB API 2.0 specification and supporting Arrow-based data exchange.

Install it if you need to query Databricks clusters or SQL warehouses from Python.

Apache-2.0pure Python
119.5Mdownloads / mo
psycopg Worth it
PyPI · Software Development · released May 2026

Psycopg 3 is a PostgreSQL database adapter for Python that enables applications to connect to, query, and manage PostgreSQL databases using Python code.

Install it if you need to connect Python to PostgreSQL.

LGPL-3.0-onlypure Python · 3.10+
117.0Mdownloads / mo

See also databricks-sqlalchemy · sqlalchemy-jdbcapi · sqlalchemy-hana · duckdb · sqlalchemy-trino · dbt-duckdb · duckdb-extension-httpfs · jupysql · duckdb-extensions · singlestoredb