需要 Python 3.10 或更高版本;使用 Ray、AWS 等能力需额外安装依赖;默认会通过 Scarf 收集非标识性遥测数据,可设 DO_NOT_TRACK=true 关闭
Daft
Eventual-IncApache-2.0活跃维护面向 AI 与多模态负载的高性能数据引擎,用 Rust 编写,能大规模处理图像、音频、视频和结构化数据,适合搭建 ETL 与数据管道。
High-performance data engine for AI and multimodal workloads. Process images, audio, video, and structured data at any scale
pip install daftREADME 未说明具体显存或 GPU 型号要求;本地可运行,也可扩展到 Ray、Kubernetes 集群。
面向 AI 与多模态工作负载的高性能数据引擎,统一处理图像、音视频和结构化数据
面向 AI 与多模态负载的高性能数据引擎,用 Rust 编写,能大规模处理图像、音频、视频和结构化数据,适合搭建 ETL 与数据管道。
核心能力
- 在单一框架内原生处理图像、音频、视频与 embedding
- 内置 LLM 提示、embedding 生成与分类等 AI 操作
- Python 接口搭配 Rust 内核,无需 JVM
- 可从本地扩展到 Ray、Kubernetes 分布式集群
- 直连 S3、GCS、Iceberg、Delta Lake、Hugging Face 等数据源
容易踩的坑
- v0.8.0-rc.1pre-release2026-11-04 · 2026-11-04 00:09 UTC
查看更新说明
Release Notes
This is the first release candidate for Daft v0.8.0. For this minor release, we are creating release candidates to give the community a change to test in real workloads and fix any outstanding bugs or performance regressions before the final release. Of the breaking changes, the ones to look out for in particular are:
- Upgrades to our AWS, Azure, and GCS client libraries, which may affect authentication or IO performance in certain edge cases
- Removal of the deprecated
@daft.udfdecorator. We suggest migrating to@daft.func.batchinstead - Removal of the deprecated
daft.io.lancemodule. We suggest migrating to thedaft-lancePython package instead - Changes to the output types from
daft.read_mcap - Other miscellaneous changes
We're really excited to share all the wonderful features and changes the community made in this minor release, it's a big one!
What's Changed
💥 Breaking Changes
- chore!: remove deprecated min_cpu_per_task from ExecutionContext by @Lucas61000 in https://github.com/Eventual-Inc/Daft/pull/7465
- feat(io)!: execute MCAP with native scan tasks by @everettVT in https://github.com/Eventual-Inc/Daft/pull/7339
- chore!: remove deprecated llm_generate by @mikemikimike in https://github.com/Eventual-Inc/Daft/pull/7450
- chore(lance)!: remove deprecated daft.io.lance module by @Lucas61000 in https://github.com/Eventual-Inc/Daft/pull/7514
- chore(logging)!: remove deprecated setup_debug_logger() by @Lucas61000 in https://github.com/Eventual-Inc/Daft/pull/7427
- fix!: Don't use
HTTPConfig.bearer_tokenfor HF auth by @srilman in https://github.com/Eventual-Inc/Daft/pull/7525 - chore!: Upgrade GCS SDK to new package name by @srilman in https://github.com/Eventual-Inc/Daft/pull/7609
- chore!: Remove
DataSourceTask.get_micro_partitionsby @srilman in https://github.com/Eventual-Inc/Daft/pull/7611 - refactor(udf)!: remove legacy @daft.udf API by @hello-peter-tang in https://github.com/Eventual-Inc/Daft/pull/7482
- chore!: Upgrade S3 client library by @srilman in https://github.com/Eventual-Inc/Daft/pull/7622
✨ Features
- feat(mcap): add native MCAP reader core by @everettVT in https://github.com/Eventual-Inc/Daft/pull/7338
- feat(distributed): add bisect autoscaling strategy for faster cluster… by @DogerW666 in https://github.com/Eventual-Inc/Daft/pull/6929
- feat(lance): add lance namespace and insert overwrites mode for write lance by @FANNG1 in https://github.com/Eventual-Inc/Daft/pull/7518
- feat: deltalake metadata pushdowns by @rchowell in https://github.com/Eventual-Inc/Daft/pull/7549
- feat: add Avro file format read/write support by @Lucas61000 in https://github.com/Eventual-Inc/Daft/pull/7009
- feat: migrate Azure IO to GA azure_storage_blob SDK, drop patched fork by @desmondcheongzx in https://github.com/Eventual-Inc/Daft/pull/7368
- feat: adds jev functions by @rchowell in https://github.com/Eventual-Inc/Daft/pull/7558
- feat(sql): support ANSI SUBSTRING syntax by @Anther-off in https://github.com/Eventual-Inc/Daft/pull/7577
- feat(io): add basic ORC file reading support by @jiangxt2 in https://github.com/Eventual-Inc/Daft/pull/7576
- feat(sql): support CROSS JOIN syntax by @easyrev in https://github.com/Eventual-Inc/Daft/pull/7573
- feat(iceberg): read data files without field IDs via schema.name-mapping.default by @YuangGao in https://github.com/Eventual-Inc/Daft/pull/7618
🐛 Bug Fixes
- fix(io): preserve Hugging Face glob revisions by @everettVT in https://github.com/Eventual-Inc/Daft/pull/7322
- fix(ai): forward extra_body to embedding requests by @nyl3532016 in https://github.com/Eventual-Inc/Daft/pull/7516
- fix(sql): report read_iceberg argument errors instead of panicking by @jackylee-ch in https://github.com/Eventual-Inc/Daft/pull/7354
- fix: eliminate TOCTOU race in CREATE TABLE IF NOT EXISTS by @Lucas61000 in https://gith
- v0.7.26最新正式版2026-10-06 · 2026-10-06 16:36 UTC
Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.7.25...v0.7.26
Release Notes
This is a smaller release to apply a dependency upgrade before the larger v0.8.0 release.
What's Changed
Build
- build: bump Ray to 2.59 by @NellyWhads in https://github.com/Eventual-Inc/Daft/pull/7567
- v0.7.252026-09-11 · 2026-09-11 23:48 UTC
查看更新说明
What's Changed
✨ Features
- feat(lerobot): support v2.0/v2.1 dataset layouts by @XuQianJin-Stars in https://github.com/Eventual-Inc/Daft/pull/7381
- feat(iceberg): add overwrite_filter for static partition overwrite by @atovk in https://github.com/Eventual-Inc/Daft/pull/7419
- feat(optimizer): push limit through row-preserving join sides by @hello-peter-tang in https://github.com/Eventual-Inc/Daft/pull/7439
- feat(io): add WebDataset reader by @rohankumardubey in https://github.com/Eventual-Inc/Daft/pull/7493
🐛 Bug Fixes
- fix: clean up unscheduled UDF actors by @everettVT in https://github.com/Eventual-Inc/Daft/pull/7346
- fix: IsIn/Decimal/UnresolvedColumn expressions fail to translate to SQL by @jiangxt2 in https://github.com/Eventual-Inc/Daft/pull/7278
- fix(functions): make coalesce() argument validation reachable by @DogerW666 in https://github.com/Eventual-Inc/Daft/pull/7404
- fix(catalog): declare noop auth for Gravitino Iceberg REST catalogs by @kyo-tom in https://github.com/Eventual-Inc/Daft/pull/7417
- fix(distributed): surface background errors while input is pending by @zhouwenjiajia in https://github.com/Eventual-Inc/Daft/pull/7396
- fix(parquet): error instead of nulling columns when field ids are absent by @jackylee-ch in https://github.com/Eventual-Inc/Daft/pull/7446
- fix(catalog): avoid shared mutable default for from_postgres extensions by @DogerW666 in https://github.com/Eventual-Inc/Daft/pull/7426
- fix(sql): escape single quotes in SQL literal rendering by @chuqCTC in https://github.com/Eventual-Inc/Daft/pull/7269
- fix(sql): reject negative literals for unsigned table function options by @jackylee-ch in https://github.com/Eventual-Inc/Daft/pull/7479
- fix(utf8): preserve backslashes in regexp_replace replacement by @jonasdedden in https://github.com/Eventual-Inc/Daft/pull/7472
- fix: Fix startup of IO-Integration Docker Compose by @srilman in https://github.com/Eventual-Inc/Daft/pull/7499
🚀 Performance
- perf(file): avoid opening files for file_size by @yongster in https://github.com/Eventual-Inc/Daft/pull/7481
♻️ Refactor
- refactor(shuffle): unify distributed shuffle backend config onto daft-local-plan ShuffleBackend by @BABTUNA in https://github.com/Eventual-Inc/Daft/pull/7402
📖 Documentation
- docs(sql): document table function options by @jackylee-ch in https://github.com/Eventual-Inc/Daft/pull/7355
- docs: Update extras installation docs by @srilman in https://github.com/Eventual-Inc/Daft/pull/7391
- docs: remove stale TableState references by @MeteorSkyOne in https://github.com/Eventual-Inc/Daft/pull/7457
✅ Tests
- test: use runtime concurrency in morsel plan assertions by @ConeyLiu in https://github.com/Eventual-Inc/Daft/pull/7454
👷 CI
- ci(integration): build Iceberg test image from python:3.10-bookworm by @hello-peter-tang in https://github.com/Eventual-Inc/Daft/pull/7489
New Contributors
- @DogerW666 made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7404
- @atovk made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7419
- @MeteorSkyOne made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7457
- @chuqCTC made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7269
- @yongster made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7481
- @NellyWhads made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7487
- @rohankumardubey made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7493
- @jonasdedden made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7472
Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.7.24...v0.7.25
- v0.7.242026-08-14 · 2026-08-14 22:18 UTC
查看更新说明
What's Changed
✨ Features
- feat: add read_blob function for reading files as raw bytes by @hello-peter-tang in https://github.com/Eventual-Inc/Daft/pull/7318
- feat(utf8): add split_part string function by @ByJH in https://github.com/Eventual-Inc/Daft/pull/7371
🐛 Bug Fixes
- fix: ls pagination by @prayanshchh in https://github.com/Eventual-Inc/Daft/pull/7372
🔧 Maintenance
- chore: Update Rust deps for dependabot warnings by @srilman in https://github.com/Eventual-Inc/Daft/pull/7363
- chore(deps): bump opendal to 0.58.1 by @Xuanwo in https://github.com/Eventual-Inc/Daft/pull/7358
- chore: Remove some duplicate dependencies by @srilman in https://github.com/Eventual-Inc/Daft/pull/7370
- chore: Bump some dependencies by @srilman in https://github.com/Eventual-Inc/Daft/pull/7378
New Contributors
- @Xuanwo made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7358
- @prayanshchh made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7372
- @hello-peter-tang made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7318
- @ByJH made their first contribution in https://github.com/Eventual-Inc/Daft/pull/7371
Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.7.23...v0.7.24
- v0.7.232026-08-05 · 2026-08-05 19:44 UTC
查看更新说明
What's Changed
✨ Features
- feat(iceberg): inject DataFile column stats into DataSourceTask for predicate short-circuit by @jiangxt2 in https://github.com/Eventual-Inc/Daft/pull/7301
🐛 Bug Fixes
- fix(dataframe): preserve explain() plan for all write sinks by @desmondcheongzx in https://github.com/Eventual-Inc/Daft/pull/6580
🚀 Performance
- perf: Optimize stats aggregation within Swordfish by @srilman in https://github.com/Eventual-Inc/Daft/pull/7359
📖 Documentation
- docs: migrate tutorials and examples to @daft.func / @daft.cls by @everettVT in https://github.com/Eventual-Inc/Daft/pull/6729
✅ Tests
- test(iceberg): cover read_iceberg against a local catalog by @jackylee-ch in https://github.com/Eventual-Inc/Daft/pull/7357
🔧 Maintenance
- chore: Update dashboard frontend dependencies by @srilman in https://github.com/Eventual-Inc/Daft/pull/7360
- chore: Ignore Dependabot warnings in benchmarks by @srilman in https://github.com/Eventual-Inc/Daft/pull/7361
Full Changelog: https://github.com/Eventual-Inc/Daft/compare/v0.7.22...untagged-8f79647338339e50cd69
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
|Banner|
|CI| |PyPI| |Latest Tag| |Coverage| |Slack|
Website <https://www.daft.ai>_ • Docs <https://docs.daft.ai>_ • Installation <https://docs.daft.ai/en/stable/install/>_ • Daft Quickstart <https://docs.daft.ai/en/stable/quickstart/>_ • Community and Support <https://github.com/Eventual-Inc/Daft/discussions>_
Daft: High-Performance Data Engine for AI and Multimodal Workloads
|TrendShift|
Daft <https://www.daft.ai>_ is a high-performance data engine for AI and multimodal workloads. Process images, audio, video, and structured data at any scale.
- Native multimodal processing: Process images, audio, video, and embeddings alongside structured data in a single framework
- Built-in AI operations: Run LLM prompts, generate embeddings, and classify data at scale using OpenAI, Transformers, or custom models
- Python-native, Rust-powered: Skip the JVM complexity with Python at its core and Rust under the hood for blazing performance
- Seamless scaling: Start local, scale to distributed clusters on
Ray <https://docs.daft.ai/en/stable/distributed/ray/>,Kubernetes <https://docs.daft.ai/en/stable/distributed/kubernetes/> - Universal connectivity: Access data anywhere (S3, GCS, Iceberg, Delta Lake, Hugging Face, Unity Catalog)
- Out-of-box reliability: Intelligent memory management and sensible defaults eliminate configuration headaches
Getting Started
Installation ^^^^^^^^^^^^
Install Daft with pip install daft. Requires Python 3.10 or higher.
For more advanced installations (e.g. installing from source or with extra dependencies such as Ray and AWS utilities), please see our Installation Guide <https://docs.daft.ai/en/stable/install/>_
Quickstart ^^^^^^^^^^
Get started in minutes with our Quickstart <https://docs.daft.ai/en/stable/quickstart/>_ - load a real-world e-commerce dataset, process product images, and run AI inference at scale.
More Resources ^^^^^^^^^^^^^^
Examples <https://docs.daft.ai/en/stable/examples/>_ - see Daft in action with use cases across text, images, audio, and moreUser Guide <https://docs.daft.ai/en/stable/>_ - take a deep-dive into each topic within DaftAPI Reference <https://docs.daft.ai/en/stable/api/>_ - API reference for public classes/functions of Daft
Benchmarks
|Benchmark Image|
To see the full benchmarks, detailed setup, and logs, check out our benchmarking page. <https://docs.daft.ai/en/stable/benchmarks>_
Contributing
We ❤️ developers! To start contributing to Daft, please read CONTRIBUTING.md <https://github.com/Eventual-Inc/Daft/blob/main/CONTRIBUTING.md>_. This document describes the development lifecycle and toolchain for working on Daft. It also details how to add new functionality to the core engine and expose it through a Python API.
Here's a list of good first issues <https://github.com/Eventual-Inc/Daft/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22>_ to get yourself warmed up with Daft. Comment in the issue to pick it up, and feel free to ask any questions!
Telemetry
To help improve Daft, we collect non-identifiable data via Scarf (https://scarf.sh).
To disable this behavior, set the environment variable DO_NOT_TRACK=true.
The data that we collect is:
- Non-identifiable: No session IDs or user identifiers are collected
- Metadata-only: We do not collect any of our users’ proprietary code or data
- For development only: We do not buy or sell any user data
Please see our documentation <https://docs.daft.ai/en/stable/telemetry/>_ for more details.
.. image:: https://static.scarf.sh/a.png?x-pxid=31f8d5ba-7e09-4d75-8895-5252bbf06cf6
Related Projects
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
| Engine | Query Optimizer | Multimodal | Distributed | Arrow Backed | Vectorized Execution Engine | Out-of-core |
+===================================================+=================+===============+=============+=================+=============================+=============+
| Daft | Yes | Yes | Yes | Yes | Yes | Yes |
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
| Pandas <https://github.com/pandas-dev/pandas>_ | No | Python object | No | optional >= 2.0 | Some(Numpy) | No |
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
| Polars <https://github.com/pola-rs/polars>_ | Yes | Python object | No | Yes | Yes | Yes |
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
| Modin <https://github.com/modin-project/modin>_ | Yes | Python object | Yes | No | Some(Pandas) | Yes |
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
| Ray Data <https://github.com/ray-project/ray>_ | No | Yes | Yes | Yes | Some(PyArrow) | Yes |
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
| PySpark <https://github.com/apache/spark>_ | Yes | No | Yes | Pandas UDF/IO | Pandas UDF | Yes |
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
| Dask DF <https://github.com/dask/dask>_ | No | Python object | Yes | No | Some(Pandas) | Yes |
+---------------------------------------------------+-----------------+---------------+-------------+-----------------+-----------------------------+-------------+
License
Daft has an Apache 2.0 license - please see the LICENSE file.
.. |Quickstart Image| image:: https://github.com/Eventual-Inc/Daft/assets/17691182/dea2f515-9739-4f3e-ac58-cd96d51e44a8 :alt: Dataframe code to load a folder of images from AWS S3 and create thumbnails :height: 256
.. |Benchmark Image| image:: https://raw.githubusercontent.com/Eventual-Inc/Daft/refs/heads/main/assets/benchmark.png :alt: AI Benchmarks
.. |Banner| image:: https://daft.ai/images/diagram.png :target: https://www.daft.ai :alt: Daft dataframes can load any data such as PDF documents, images, protobufs, csv, parquet and audio files into a table dataframe structure for easy querying
.. |CI| image:: https://github.com/Eventual-Inc/Daft/actions/workflows/pr-test-suite.yml/badge.svg :target: https://github.com/Eventual-Inc/Daft/actions/workflows/pr-test-suite.yml?query=branch:main :alt: GitHub Actions tests
.. |PyPI| image:: https://img.shields.io/pypi/v/daft.svg?label=pip&logo=PyPI&logoColor=white :target: https://pypi.org/project/daft :alt: PyPI
.. |Latest Tag| image:: https://img.shields.io/github/v/tag/Eventual-Inc/Daft?label=latest&logo=GitHub :target: https://github.com/Eventual-Inc/Daft/tags :alt: latest tag
.. |Coverage| image:: https://codecov.io/gh/Eventual-Inc/Daft/branch/main/graph/badge.svg?token=J430QVFE89 :target: https://codecov.io/gh/Eventual-Inc/Daft :alt: Coverage
.. |Slack| image:: https://img.shields.io/badge/[email protected]?logo=slack :target: https://daft.ai/slack :alt: slack community
.. |TrendShift| image:: https://trendshift.io/api/badge/repositories/8239 :target: https://trendshift.io/repositories/8239 :alt: Eventual-Inc/Daft | Trendshift :width: 250px :height: 55px