Skip to content

Commit be56bd3

Browse files
alambcomphead
andauthored
Minor: Update documentation about crate organization (#14304)
* Minor: Update documentation about crate organization * Update datafusion/core/src/lib.rs --------- Co-authored-by: Oleks V <[email protected]>
1 parent 7c07948 commit be56bd3

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

datafusion/core/src/lib.rs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -624,19 +624,41 @@
624624
//!
625625
//! ## Crate Organization
626626
//!
627-
//! DataFusion is organized into multiple crates to enforce modularity
628-
//! and improve compilation times. The crates are:
627+
//! Most users interact with DataFusion via this crate (`datafusion`), which re-exports
628+
//! all functionality needed to build and execute queries.
629+
//!
630+
//! There are three other crates that provide additional functionality that
631+
//! must be used directly:
632+
//! * [`datafusion_proto`]: Plan serialization and deserialization
633+
//! * [`datafusion_substrait`]: Support for the substrait plan serialization format
634+
//! * [`datafusion_sqllogictest`] : The DataFusion SQL logic test runner
635+
//!
636+
//! [`datafusion_proto`]: https://crates.io/crates/datafusion-proto
637+
//! [`datafusion_substrait`]: https://crates.io/crates/datafusion-substrait
638+
//! [`datafusion_sqllogictest`]: https://crates.io/crates/datafusion-sqllogictest
639+
//!
640+
//! DataFusion is internally split into multiple sub crates to
641+
//! enforce modularity and improve compilation times. See the
642+
//! [list of modules](#modules) for all available sub-crates. Major ones are
629643
//!
630644
//! * [datafusion_common]: Common traits and types
645+
//! * [datafusion_catalog]: Catalog APIs such as [`SchemaProvider`] and [`CatalogProvider`]
631646
//! * [datafusion_execution]: State and structures needed for execution
632-
//! * [datafusion_expr]: [`LogicalPlan`], [`Expr`] and related logical planning structure
647+
//! * [datafusion_expr]: [`LogicalPlan`], [`Expr`] and related logical planning structure
633648
//! * [datafusion_functions]: Scalar function packages
649+
//! * [datafusion_functions_aggregate]: Aggregate functions such as `MIN`, `MAX`, `SUM`, etc
634650
//! * [datafusion_functions_nested]: Scalar function packages for `ARRAY`s, `MAP`s and `STRUCT`s
651+
//! * [datafusion_functions_table]: Table Functions such as `GENERATE_SERIES`
652+
//! * [datafusion_functions_window]: Window functions such as `ROW_NUMBER`, `RANK`, etc
635653
//! * [datafusion_optimizer]: [`OptimizerRule`]s and [`AnalyzerRule`]s
636654
//! * [datafusion_physical_expr]: [`PhysicalExpr`] and related expressions
637655
//! * [datafusion_physical_plan]: [`ExecutionPlan`] and related expressions
656+
//! * [datafusion_physical_optimizer]: [`ExecutionPlan`] and related expressions
638657
//! * [datafusion_sql]: SQL planner ([`SqlToRel`])
639658
//!
659+
//! [`SchemaProvider`]: datafusion_catalog::SchemaProvider
660+
//! [`CatalogProvider`]: datafusion_catalog::CatalogProvider
661+
//!
640662
//! ## Citing DataFusion in Academic Papers
641663
//!
642664
//! You can use the following citation to reference DataFusion in academic papers:

0 commit comments

Comments
 (0)