Workspace Dependency Graph#

This page shows the dependency relationships between DataFusion’s workspace crates. This only includes internal dependencies, external crates like Arrow are not included

The dependency graph is auto-generated by docs/scripts/generate_dependency_graph.sh to ensure it stays up-to-date, and the script now runs automatically as part of docs/build.sh.

Dependency Graph for Workspace Crates#

%3 0 datafusion-common 1 datafusion-common-runtime 2 datafusion-catalog 3 datafusion-datasource 2->3 14 datafusion-physical-expr-adapter 3->14 18 datafusion-session 3->18 4 datafusion-execution 5 datafusion-expr 4->5 6 datafusion-doc 5->6 8 datafusion-functions-aggregate-common 5->8 10 datafusion-functions-window-common 5->10 7 datafusion-expr-common 7->0 9 datafusion-physical-expr-common 8->9 9->7 10->9 11 datafusion-physical-expr 12 datafusion-functions 11->12 12->4 13 datafusion-macros 12->13 13->6 14->11 15 datafusion-physical-plan 15->1 16 datafusion-functions-aggregate 15->16 17 datafusion-functions-window 15->17 16->11 17->11 18->15 19 datafusion-catalog-listing 19->2 20 datafusion-datasource-parquet 19->20 21 datafusion-pruning 20->21 21->3 22 datafusion-functions-nested 21->22 22->16 23 datafusion-datasource-arrow 23->3 24 datafusion-datasource-avro 24->3 25 datafusion-datasource-csv 25->3 26 datafusion-datasource-json 26->3 27 datafusion 27->19 27->23 27->24 27->25 27->26 28 datafusion-functions-table 27->28 29 datafusion-optimizer 27->29 31 datafusion-physical-optimizer 27->31 32 test-utils 27->32 28->2 30 datafusion-sql 29->30 30->17 30->22 31->21 32->0 33 datafusion-ffi 34 datafusion-proto 33->34 34->27 35 datafusion-proto-common 34->35 35->0 36 datafusion-spark 36->2 36->22 37 datafusion-sqllogictest 37->36 38 datafusion-substrait 37->38 38->27 39 datafusion-wasmtest 39->27 40 datafusion-cli 40->27 41 datafusion-examples 41->34 42 ffi_example_table_provider 43 ffi_module_interface 42->43 43->33 44 ffi_module_loader 44->43 45 datafusion-benchmarks 45->34
Interactive SVG (pan, zoom, search)
Open SVG ↗

Legend#

  • black lines: normal dependency

  • blue lines: dev-dependency

  • green lines: build-dependency

  • dotted lines: optional dependency (could be removed by disabling a cargo feature)

Transitive dependencies are intentionally ignored to keep the graph readable.

The dependency graph is generated through cargo depgraph by docs/scripts/generate_dependency_graph.sh.