NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1758 most downloaded on PyPI
dlt is an open-source python-first scalable data loading library that does not require any backend to run.
Last release 17 days ago
10 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
13 versions withdrawn
withdrawn after publishing
9 years old
183 releases · first in 2018
Add authenticator to SnowflakeCredentials class by @gjdevincentis in https://github.com/dlt-hub/dlt/pull/734
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.24...0.3.25
One column per quarter.
Show many schemas in embedded streamlit app by @deeplook in https://github.com/dlt-hub/dlt/pull/690
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.23...0.3.24
Replace multiprocessing pool with futures executors. Now you can run multi-thread code on Lambda (no more semaphore problems) by @steinitzu in https:/
_dlt_load_id and _dlt_id when loading Arrow/Pandas. @steinitzu in https://github.com/dlt-hub/dlt/pull/704dlt config and secrets! by @AstrakhantsevaAA in https://github.com/dlt-hub/dlt/pull/703Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.22...0.3.23
Nothing published for this version
Nothing published for this version
Fix: make Load single-thread compatible by @codingcyclist in https://github.com/dlt-hub/dlt/pull/698
endpoint_url with fsspec by @steinitzu in https://github.com/dlt-hub/dlt/pull/701Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.21...0.3.22
Nothing published for this version
Nothing published for this version
athena iceberg by @sh-rp in https://github.com/dlt-hub/dlt/pull/659 Use new table hint table format to store selected Athena tables in iceberg format
athena iceberg by @sh-rp in https://github.com/dlt-hub/dlt/pull/659 Use new table hint table format to store selected Athena tables in iceberg format (https://dlthub.com/docs/dlt-ecosystem/destinations/athena#iceberg-data-tables)
Pyarrow direct loading by @steinitzu and @tomsej in https://github.com/dlt-hub/dlt/pull/679
Allows to pass Arrow tables and Panda frames to the run method and load them directly (via parquet) without data copy (https://dlthub.com/docs/dlt-ecosystem/verified-sources/arrow-pandas) which should result in immense speedups in many loading cases
Features/dbt cloud by @AstrakhantsevaAA in https://github.com/dlt-hub/dlt/pull/694 Run dbt jobs in the cloud (https://dlthub.com/docs/dlt-ecosystem/transformations/dbt/dbt_cloud)
enables duckdb 0.9.1 and improves motherduck docs by @rudolfix in https://github.com/dlt-hub/dlt/pull/695 Please also read Motherduck updated documentation (https://dlthub.com/docs/dlt-ecosystem/destinations/motherduck) - you may want to reduce load parallelism if you are on weak internet connection
allows to provide custom implementation of DltSource to the source decorator by @rudolfix in https://github.com/dlt-hub/dlt/pull/687
root_key propagation. fixes various problems where merge and replace write dispositions were subsequently used in the same pipeline by @sh-rp in https://github.com/dlt-hub/dlt/pull/686Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.19...0.3.21
Nothing published for this version
Nothing published for this version
easy renaming of resources by @rudolfix in https://github.com/dlt-hub/dlt/pull/671
dlt.sources.filesystem by @rudolfix in https://github.com/dlt-hub/dlt/pull/671Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.18...0.3.19
Nothing published for this version
Nothing published for this version
Support for precision, scale in column schema by @steinitzu in https://github.com/dlt-hub/dlt/pull/646
state by fixing set attribute bug by @steinitzu in https://github.com/dlt-hub/dlt/pull/657dlt pipeline show streamlit app start-up by @rudolfix in https://github.com/dlt-hub/dlt/pull/645depends_on with data_from in resource decorator @rudolfix in https://github.com/dlt-hub/dlt/pull/645dlt API Reference by @AstrakhantsevaAA in https://github.com/dlt-hub/dlt/pull/642https://github.com/dlt-hub/dlt/pull/645
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.17...0.3.18
Nothing published for this version
Add support for TIME data type by @steinitzu in https://github.com/dlt-hub/dlt/pull/606
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.16...0.3.17
add default user agent header to dlt requests client by @sh-rp in https://github.com/dlt-hub/dlt/pull/595
add default user agent header to dlt requests client by @sh-rp in https://github.com/dlt-hub/dlt/pull/595
Add issue templates by @burnash in https://github.com/dlt-hub/dlt/pull/537
Add pydantic support by @steinitzu in https://github.com/dlt-hub/dlt/pull/589 You can use pydantic to define table schemas. You can load pydantic instances like you can load dictionaries
retain schema hints order by @sh-rp in https://github.com/dlt-hub/dlt/pull/600
NormalizerInfo: item counts in table present in trace by @sh-rp in https://github.com/dlt-hub/dlt/pull/582
Get counts of items added to table from normalization stage
Add azure blob storage filesystem/staging destination by @steinitzu in https://github.com/dlt-hub/dlt/pull/592 Also includes Snowflake stage support
Feat: add time to pua serde by @z3z1ma in https://github.com/dlt-hub/dlt/pull/604
general state sync interface by @sh-rp in https://github.com/dlt-hub/dlt/pull/564 You can restore state and schemas from Weaviate now (filesystem comes later)
uses botocore instead of boto3 in AwsCredentials by @rudolfix in https://github.com/dlt-hub/dlt/pull/590
airtable source by @willi-mueller in https://github.com/dlt-hub/verified-sources/pull/218
thx for amazing contribution!Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.13...0.3.16
Nothing published for this version
Nothing published for this version
Nothing published for this version
Feat: don't require AWS credentials for external Snowflake stage by @codingcyclist in https://github.com/dlt-hub/dlt/pull/587
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.12...0.3.13
In this version we release two new types of a destinations:
In this version we release two new types of a destinations:
filesystem as a stagingApart from that bug fixes:
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.10...0.3.12
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix config dataclasses on python 3.11 by @steinitzu in https://github.com/dlt-hub/dlt/pull/541 Now P3.11 is fully tested on CI
sentry-sdk and several dependencies used by dlt deploy command were moved to extras. several others (including fsspec) have their minimal version set to earlier versionsFull Changelog: https://github.com/dlt-hub/dlt/compare/0.3.9...0.3.10
When a replace with staging dataset was used in version 0.3.8, tables with other write dispositions were also truncated (in other words all the tables
When a replace with staging dataset was used in version 0.3.8, tables with other write dispositions were also truncated (in other words all the tables in the schema could be truncated). Note that default replace strategy does not use staging dataset so if you didn't explicitly changed you were not affected. This release fixes that bug. If you use the replace strategy above, update the library.
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.8...0.3.9
use Airflow (and possibly other) schedulers with dlt resources by @rudolfix in https://github.com/dlt-hub/dlt/pull/534 A really cool feature that allo
use Airflow (and possibly other) schedulers with dlt resources by @rudolfix in https://github.com/dlt-hub/dlt/pull/534 A really cool feature that allows your incremental loading to take date ranges from Airflow schedulers. Do backfilling, incremental loading and relay on Airflow to keep the pipeline state.
Ignore hints prefixed with 'x-' in table_schema() by @burnash in https://github.com/dlt-hub/dlt/pull/525
Now our CI works correctly from forks! by @steinitzu in https://github.com/dlt-hub/dlt/pull/530
A really cool data source that let's you ask questions about your PDF documents and stores the answers in any of our destinations. Going from binary blobs through unstrucutred.io, vector databases and LLM queries to ie. duckdb and bigquery. Blobs coming from filesystem, google drive or your inbox (also incrementally) by @AstrakhantsevaAA
Nothing published for this version
fixes lost data and incorrect handling of child tables during truncate-and-insert replace by @sh-rp in https://github.com/dlt-hub/dlt/pull/499 This is
fixes lost data and incorrect handling of child tables during truncate-and-insert replace by @sh-rp in https://github.com/dlt-hub/dlt/pull/499
This is important improvement that fixes a few holes in truncate-and-insert replace mode (which was there from beginning of dlt). Now we truncate all the tables before multithreaded append process starts. We also truncate child tables that could be left with data before.
details: #263 #271
fixes deploy airflow secrets and makes toml the default layout by @rudolfix in https://github.com/dlt-hub/dlt/pull/513
check the required verified source dlt version during dlt init and warn users by @steinitzu in https://github.com/dlt-hub/dlt/pull/514
add schema version to _dlt_loads table by @codingcyclist in https://github.com/dlt-hub/dlt/pull/466
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.5...0.3.6
Nothing published for this version
Fix incremental hitting end_value throwing out whole batches by @steinitzu in https://github.com/dlt-hub/dlt/pull/495
Fix incremental hitting end_value throwing out whole batches by @steinitzu in https://github.com/dlt-hub/dlt/pull/495
replace with staging tables by @sh-rp in https://github.com/dlt-hub/dlt/pull/488 Now staging dataset may be used to replace tables. you can chose from several replace strategies (https://dlthub.com/docs/general-usage/full-loading) including fully transactional and atomic replacing of parent and all child tables or optimized where we use ie. ability to clone tables and copy on write in BigQuery and Snowflake
detect serverless aws_lambda by @muppinesh in https://github.com/dlt-hub/dlt/pull/490
fixes credentials instantiation by @rudolfix in https://github.com/dlt-hub/dlt/pull/507
fixes extract schema update by @rudolfix in https://github.com/dlt-hub/dlt/pull/509
adds destination fingerprint by @rudolfix in https://github.com/dlt-hub/dlt/pull/511
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.4...0.3.5
Nothing published for this version
staging for loader files implemented by @sh-rp in https://github.com/dlt-hub/dlt/pull/451
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.3...0.3.4
supports motherduck as a destination by @rudolfix in https://github.com/dlt-hub/dlt/pull/460
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.2...0.3.3
This is a pre-release version with adds motherduck destination. for details please see our docs
This is a pre-release version with adds motherduck destination. for details please see our docs
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.2...0.3.3a0
snowflake destination: we support loading via PUT stage (parquet and jsonl) and password and key pair authentication by @steinitzu in https://github.c
parquet and jsonl) and password and key pair authentication by @steinitzu in https://github.com/dlt-hub/dlt/pull/414dbt-snowflake supported by dbt wrapper by @steinitzu in https://github.com/dlt-hub/dlt/pull/448dhelp (AI assistant in docs) enabled by @burnash in https://github.com/dlt-hub/dlt/pull/390Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.1...0.3.2
add computed exhausted property by @sh-rp in https://github.com/dlt-hub/dlt/pull/380
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.3.0...0.3.1
Nothing published for this version
renames Pipelines to Verified Sources by @rudolfix in https://github.com/dlt-hub/dlt/pull/382
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.2.9...0.3.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Update deprecated GitHub action by @tungbq in https://github.com/dlt-hub/dlt/pull/345
Full Changelog: https://github.com/dlt-hub/dlt/compare/0.2.8...0.2.9
Nothing published for this version
fixes various airflow deployment issues by @rudolfix in https://github.com/dlt-hub/dlt/pull/334 that include on-atomic renames on bucket mapped with f
resource_state got final interface and is now exposed in dlt.current.resource_state https://github.com/dlt-hub/dlt/pull/350source.with_resources creates a clone of resource and selects in the clone. previously source was modified in placedlt.config and dlt.secrets indexersFull Changelog: https://github.com/dlt-hub/dlt/compare/0.2.6...0.2.8
Nothing published for this version
Nothing published for this version
Nothing published for this version
An experimental google secrets config provider https://github.com/dlt-hub/dlt/issues/292 (actively used on our CI, goes to GA after adding more tests)
dlt init and dlt pipeline CLI commandspip install -U dltdlt.sources.credentials module with reusable credentials by @rudolfix in https://github.com/dlt-hub/dlt/pull/315 (google service account, oauth2, database connection string and their base classes available to be used in pipelines)pipelines repo with more building blocks examples and a guide on sharing community pipelines (https://github.com/dlt-hub/pipelines/blob/master/README.md#read-the-docs-on-building-blocks)Full Changelog: https://github.com/dlt-hub/dlt/compare/0.2.6a1...0.2.6
Nothing published for this version
Feat/pipeline drop command by @steinitzu in https://github.com/dlt-hub/dlt/pull/285
add_limit method for resources by @z3z1ma in https://github.com/dlt-hub/dlt/pull/298Full Changelog: https://github.com/dlt-hub/dlt/compare/0.2.6a0...0.2.6a1
💡 We changed the package name to dlt! `sh pip install dlt `
💡 We changed the package name to dlt!
pip install dlt
dlt by @burnash in https://github.com/dlt-hub/dlt/pull/264primary_key to dlt.sources.incrementala first of series of Airflow helpers and features: store secrets.toml in Airflow Variable and have your credentials injected automatically. same code works locally and in Airflow DAG.
When building pipelines you can now use specs that wrap google credentials. we support service credentials and oauth2 credentials, detect default credentials, provide authorization methods etc. info on credentials below will soon be added to our docs and some example pipelines.
from dlt.common.configuration.specs import GcpClientCredentials, GcpClientCredentialsWithDefault, GcpOAuthCredentials, GcpOAuthCredentialsWithDefault
understanding the tables content by @TyDunn in https://github.com/dlt-hub/dlt/pull/258dlt in the docs by @burnash in https://github.com/dlt-hub/dlt/pull/282Full Changelog: https://github.com/dlt-hub/dlt/compare/0.2.0a32...0.2.6a0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →