|
624 | 624 | //!
|
625 | 625 | //! ## Crate Organization
|
626 | 626 | //!
|
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 |
629 | 643 | //!
|
630 | 644 | //! * [datafusion_common]: Common traits and types
|
| 645 | +//! * [datafusion_catalog]: Catalog APIs such as [`SchemaProvider`] and [`CatalogProvider`] |
631 | 646 | //! * [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 |
633 | 648 | //! * [datafusion_functions]: Scalar function packages
|
| 649 | +//! * [datafusion_functions_aggregate]: Aggregate functions such as `MIN`, `MAX`, `SUM`, etc |
634 | 650 | //! * [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 |
635 | 653 | //! * [datafusion_optimizer]: [`OptimizerRule`]s and [`AnalyzerRule`]s
|
636 | 654 | //! * [datafusion_physical_expr]: [`PhysicalExpr`] and related expressions
|
637 | 655 | //! * [datafusion_physical_plan]: [`ExecutionPlan`] and related expressions
|
| 656 | +//! * [datafusion_physical_optimizer]: [`ExecutionPlan`] and related expressions |
638 | 657 | //! * [datafusion_sql]: SQL planner ([`SqlToRel`])
|
639 | 658 | //!
|
| 659 | +//! [`SchemaProvider`]: datafusion_catalog::SchemaProvider |
| 660 | +//! [`CatalogProvider`]: datafusion_catalog::CatalogProvider |
| 661 | +//! |
640 | 662 | //! ## Citing DataFusion in Academic Papers
|
641 | 663 | //!
|
642 | 664 | //! You can use the following citation to reference DataFusion in academic papers:
|
|
0 commit comments