NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1817 most downloaded on PyPI
Distributed Dataframes for Multimodal Data
Last release 5 days ago
12 Sep 2026
Ships fairly regularly
a new release about every 1 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
8 versions withdrawn
withdrawn after publishing
14 years old
79 releases · first in 2012
perf: Improve source buffering @colin-ho
Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.5.1...v0.5.2
docs: Update sessions.md to reflect correct import behavior as described in session class docstring @everettVT
Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.5.0...v0.5.1
One column per quarter.
The getdaft Python package was deprecated in v0.4 and is now unsupported. Please import the daft package instead
DAFT_RUNNER env var from py to nativedaft.context.set_runner_native() instead of daft.context.set_runner_py()daft.Series
daft.lit or daft.Expression methods is no longer supported.daft.sql.SQLCatalog
daft.sql(...) to add DataFrames to the query:# before
catalog = daft.sql.SQLCatalog({ "my_df": df })
daft.sql("SELECT * FROM my_df", catalog=catalog)
# after
daft.sql("SELECT * FROM my_df", my_df=df)
These functions in daft.catalog were deprecated in v0.4 and have now been removed.
daft.catalog.read_table - use daft.read_table insteaddaft.catalog.register_table - use daft.attach_table insteaddaft.catalog.register_python_catalog - use daft.attach_catalog insteaddaft.catalog.unregister_catalog - use daft.detach_catalog insteadThese functions in daft.io.catalog are deprecated and marked for removal in v0.6. Please use our unified catalog API instead.
daft.io.catalog.DataCatalogdaft.io.catalog.DataCatalogTableFull Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.18...v0.5.0
fix: Implement dedicated map growable @colin-ho
from __future__ import annotations @srilman (#4393)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.17...v0.4.18
build: make dashboard self contained again, except when running in ci @universalmind303
Expression.embedding.cosine_distance @srilman (#4419)py runner tests from PR CI @srilman (#4403)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.16...v0.4.17
feat: Add put\_multipart to s3\_like @rohitkulshreshtha
repr_json for logical plans. @universalmind303 (#4354)list exprs to new expr @universalmind303 (#4340)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.15...v0.4.16
feat: Add generic interface for custom data sinks @desmondcheongzx
Expr.skew @srilman (#4346)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.14...v0.4.15
feat: temporal functions quarter, unix_date, unix_micros, unix_millis, unix_seconds @petern48
quarter, unix_date, unix_micros, unix_millis, unix_seconds @petern48 (#4298)CONTRIBUTING.md @petern48 (#4299)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.13...v0.4.14
feat: Flotilla scaffolding @colin-ho
Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.12...v0.4.13
feat(window): dynamic window frame aggregations (sliding / running window functions) @f4t4nt
micropartition.to_arrow() @colin-ho (#4192)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.11...v0.4.12
feat: Support pairwise cosine distance @desmondcheongzx
daft[unity] install @colin-ho (#4200)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.10...v0.4.11
feat: Set num threads for local runners @colin-ho
strftime @universalmind303 (#4146)is_t and inner property methods to DataType @universalmind303 (#4141)unix_timestamp function @universalmind303 (#4130)Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.4.9...v0.4.10
The Daft 0.1.3 release features fixes for a few performance regressions.
The Daft 0.1.3 release features fixes for a few performance regressions.
The Daft 0.1.2 release features performance improvements, bugfixes and some of our first Daft logical types!
The Daft 0.1.2 release features performance improvements, bugfixes and some of our first Daft logical types!
Adds our first “Logical Type”: Embeddings!
An Embedding is a “Logical Type” that encompasses a Fixed Size List. It is common in applications for Machine Learning and AI.
See: #929
Welcome to the first “minor” version release of Daft!
Welcome to the first “minor” version release of Daft!
We hope everyone has had a great time using our 0.0.* releases, but buckle up and grab a drink while you read these release notes, because we built so much over the past month and this new release is BIG!
A big shoutout to the contributors who made this all possible - with 21,716 added and 16,090 deleted lines of code!
@xcharleslin @clarkzinzow @jeevb @samster25 @jaychia @FelixKleineBoesing
The full list of changes is much too long to present in this release notes, but here it is anyways.
Our execution code was refactored into Rust!
Previously Daft relied on a mix of NumPy, Polars, Pandas and PyArrow for executing logic. This was problematic for a few reasons:
As of 0.1.0, Daft is now statically linked to the wonderful Arrow2 Rust library which we use for executing all our kernels.
This has several implications:
On the user-facing API, most of these changes are completely transparent - i.e. you just got a massive speedup for free!
Our type system just levelled up!
As a result, we have much cleaner support for Null array handling since the Null type can be correctly type-promoted with our new supertype semantics.
As our first minor release, several APIs have changed substantially that you should be aware of. Moving forward, Daft APIs will maintain much stricter backward compatibility semantics.
UDFs are much cleaner in 0.1.0!
UDFs now no longer require up-front declaration of which arguments have to be Expressions, and what input types they are passed in as (list, numpy, arrow etc). Instead:
For more information, consult: UDF User Guide
Our old typing APIs have changed - the definitive typing API is now found at daft.DataType.
If you are declaring types (for instance as return types for UDFs), you should now use the DataType.* constructor methods!
Creation of DataFrames has been promoted to module-level functions!
Before:
from daft import DataFrame
df = DataFrame.read_csv(...)
After:
import daft
df = daft.read_csv(...)
This is a big improvement in useability (moving forward, Daft will try to make it as easy as possible to use us by just importing the top-level daft module).
For more information, please see: API Documentation for Input/Output.
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 →