From 533fbc4f605fcc213a3fbdb1dcdc65968ac5e718 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 12 Sep 2024 11:59:32 -0400 Subject: [PATCH] Add 'Extensions List' page to the documentation (#12420) --- docs/source/contributor-guide/architecture.md | 18 ++---- docs/source/index.rst | 1 + docs/source/library-user-guide/extensions.md | 64 +++++++++++++++++++ 3 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 docs/source/library-user-guide/extensions.md diff --git a/docs/source/contributor-guide/architecture.md b/docs/source/contributor-guide/architecture.md index 55c8a1d980df..1a094968a274 100644 --- a/docs/source/contributor-guide/architecture.md +++ b/docs/source/contributor-guide/architecture.md @@ -43,20 +43,10 @@ DataFusion. If you can not do what you want with the existing APIs, we would welcome you working with us to add new APIs to enable your use case, as described in the next section. -## `datafusion-contrib` - -While DataFusions comes with enough features "out of the box" to quickly start -with a working system, it can't include everything useful feature (e.g. -`TableProvider`s for all data formats). The [`datafusion-contrib`] project -contains a collection of community maintained extensions that are not part of -the core DataFusion project, and not under Apache Software Foundation governance -but may be useful to others in the community. If you are interested adding a -feature to DataFusion, a new extension in `datafusion-contrib` is likely a good -place to start. Please [contact] us via github issue, slack, or Discord and -we'll gladly set up a new repository for your extension. - -[`datafusion-contrib`]: https://github.com/datafusion-contrib -[contact]: ../contributor-guide/communication.md +Please see the [Extensions] section to find out more about existing DataFusion +extensions and how to contribute your extension to the community. + +[extensions]: ../library-user-guide/extensions.md ## Creating new Extension APIs diff --git a/docs/source/index.rst b/docs/source/index.rst index 4c67e808a4dd..32a5dce323f2 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -108,6 +108,7 @@ To get started, see :caption: Library User Guide library-user-guide/index + library-user-guide/extensions library-user-guide/using-the-sql-api library-user-guide/working-with-exprs library-user-guide/using-the-dataframe-api diff --git a/docs/source/library-user-guide/extensions.md b/docs/source/library-user-guide/extensions.md new file mode 100644 index 000000000000..0c7c891f4b1e --- /dev/null +++ b/docs/source/library-user-guide/extensions.md @@ -0,0 +1,64 @@ + + +# Extensions List + +DataFusion tries to provide a good set of features "out of the box" to quickly +start with a working system, but it can't include every useful feature (e.g. +`TableProvider`s for all data formats). + +Thankfully one of the core features of DataFusion is a flexible extension API +that allows users to extend its behavior at all points. This page lists some +community maintained extensions available for DataFusion. These extensions are +not part of the core DataFusion project, and not under Apache Software +Foundation governance but we list them here to be useful to others in the +community. + +If you know of an available extension that is not listed below, please open a PR +to add it to this page. If there is some feature you would like to see in +DataFusion, please consider creating a new extension in the `datafusion-contrib` +project (see [below](#datafusion-contrib)). Please [contact] us via github issue, slack, or Discord and +we'll gladly set up a new repository for your extension. + +| Name | Type | Description | +| ---------------------------- | ----------------- | --------------------------------------------------------------------------------- | +| [DataFusion Table Providers] | [`TableProvider`] | Support for `PostgreSQL`, `MySQL`, `SQLite`, `DuckDB`, and `Flight SQL` | +| [DataFusion Federation] | Framework | Allows DataFusion to execute (part of) a query plan by a remote execution engine. | +| [DataFusion ORC] | [`TableProvider`] | [Apache ORC] file format | +| [DataFusion JSON Functions] | Functions | Scalar functions for querying JSON strings | + +[`tableprovider`]: https://docs.rs/datafusion/latest/datafusion/catalog/trait.TableProvider.html +[datafusion table providers]: https://github.com/datafusion-contrib/datafusion-table-providers +[datafusion federation]: https://github.com/datafusion-contrib/datafusion-federation +[datafusion orc]: https://github.com/datafusion-contrib/datafusion-orc +[apache orc]: https://orc.apache.org/ +[datafusion json functions]: https://github.com/datafusion-contrib/datafusion-functions-json + +## `datafusion-contrib` + +The [`datafusion-contrib`] project contains a collection of community maintained +extensions that are not part of the core DataFusion project, and not under +Apache Software Foundation governance but may be useful to others in the +community. If you are interested adding a feature to DataFusion, a new extension +in `datafusion-contrib` is likely a good place to start. Please [contact] us via +github issue, slack, or Discord and we'll gladly set up a new repository for +your extension. + +[`datafusion-contrib`]: https://github.com/datafusion-contrib +[contact]: ../contributor-guide/communication.md