{
  "aliases": [
    "DataFusion",
    "Arrow DataFusion"
  ],
  "workflows": [
    "Embed a SQL engine in a Rust data service",
    "Query Parquet files from Python without a database",
    "Build a custom analytics product on an extensible planner"
  ],
  "advantages": [
    "Designed for extension and embedding",
    "Rust safety and performance with Arrow memory",
    "Apache 2.0 under ASF governance"
  ],
  "limitations": [
    "Less turnkey than DuckDB for interactive use",
    "Distributed execution needs Ballista or another layer",
    "Smaller SQL function library than mature databases"
  ],
  "prerequisites": [
    "Rust toolchain or Python with the datafusion package"
  ],
  "audiences": [
    "Developers of data systems",
    "Rust engineers",
    "Python users querying Parquet"
  ],
  "alternatives": [
    "duckdb",
    "polars",
    "apache-spark",
    "trino",
    "apache-arrow"
  ],
  "tags": [
    "sql",
    "rust",
    "apache-arrow",
    "parquet",
    "query-engine",
    "open-source"
  ],
  "use_cases": [
    "query-parquet-files",
    "build-data-systems"
  ],
  "operating_systems": [
    "macos",
    "linux",
    "windows"
  ],
  "deployment_models": [
    "embedded"
  ],
  "integrations": [
    "Apache Arrow",
    "Ballista",
    "Apache Comet",
    "InfluxDB 3",
    "Delta Lake (delta-rs)",
    "Apache Iceberg (iceberg-rust)"
  ],
  "data_formats": [
    "Parquet",
    "CSV",
    "JSON",
    "Avro",
    "Arrow IPC"
  ],
  "languages": [
    "Rust",
    "Python",
    "SQL"
  ],
  "self_hostable": true,
  "discovery_method": "editorial-research",
  "depth": "standard",
  "editorial_status": "reviewed",
  "visibility": "public",
  "featured": false,
  "author": "batch-D",
  "slug": "apache-datafusion",
  "name": "Apache DataFusion",
  "vendor": {
    "name": "Apache Software Foundation",
    "slug": "apache-software-foundation",
    "website": "https://www.apache.org/"
  },
  "homepage_url": "https://datafusion.apache.org/",
  "docs_url": "https://datafusion.apache.org/",
  "repo_url": "https://github.com/apache/datafusion",
  "license_url": "https://github.com/apache/datafusion/blob/main/LICENSE.txt",
  "product_type": "library",
  "product_status": "active",
  "summary": "Extensible Rust query engine built on Apache Arrow offering SQL and DataFrame APIs, Parquet readers and an optimizer for embedding in data systems",
  "description": "Apache DataFusion is a query engine library written in Rust and maintained as an Apache Software Foundation top-level project under Apache 2.0. It parses SQL or builds plans from a DataFrame API, optimizes them with rule-based and cost-aware passes, and executes them as multithreaded, vectorized streams of Apache Arrow record batches, reading Parquet, CSV, JSON and Avro from local disk or object stores. Every layer (parser, planner, optimizer rules, physical operators, table providers, functions) is designed to be extended or replaced, which is why DataFusion serves as the engine inside systems such as InfluxDB 3, the Comet accelerator for Spark, Ballista for distributed execution and many commercial products. Python bindings (datafusion) expose SQL and DataFrames to notebooks, and a CLI runs ad-hoc queries over files.\n\nDataFusion is the right starting point for building a database, lake query service or domain-specific analytics tool in Rust, and a capable single-node engine for Parquet in Python. As an end-user tool it has less polish and fewer convenience features than DuckDB or Polars, and distributed execution requires additional projects.",
  "capabilities": [
    "SQL parser, planner and optimizer in Rust",
    "Vectorized execution on Arrow record batches",
    "Parquet, CSV, JSON and Avro readers with object-store support",
    "Pluggable table providers, functions and optimizer rules",
    "DataFrame API in Rust and Python",
    "Command-line interface for querying files"
  ],
  "categories": [
    {
      "slug": "analytics-engines",
      "primary": true
    },
    {
      "slug": "dataframes-arrays"
    }
  ],
  "execution_modes": [
    "local"
  ],
  "interfaces": [
    "library",
    "cli"
  ],
  "source_model": "open-source",
  "license_spdx": "Apache-2.0",
  "pricing_model": [
    "open-source",
    "free"
  ],
  "sources": [
    {
      "url": "https://datafusion.apache.org/",
      "type": "official_site",
      "supports": [
        "name",
        "summary",
        "capabilities"
      ],
      "checked_at": "2026-11-02",
      "title": "Apache DataFusion",
      "note": "Site doubles as documentation portal"
    },
    {
      "url": "https://github.com/apache/datafusion/blob/main/LICENSE.txt",
      "type": "license_page",
      "supports": [
        "license_spdx",
        "source_model"
      ],
      "checked_at": "2026-11-02",
      "title": "DataFusion LICENSE.txt (Apache 2.0)"
    },
    {
      "url": "https://github.com/apache/datafusion",
      "type": "repository",
      "supports": [
        "repo_url"
      ],
      "checked_at": "2026-11-02",
      "title": "apache/datafusion"
    }
  ],
  "confidence": "high"
}
