diff --git a/ci/conda_env_docs.txt b/ci/conda_env_docs.txt index ff2b6df33f..42151b8d29 100644 --- a/ci/conda_env_docs.txt +++ b/ci/conda_env_docs.txt @@ -18,7 +18,7 @@ breathe doxygen # XXX(https://github.com/apache/arrow-adbc/issues/987) -furo=2023.07.26 +furo>=2023.09.10 make # Needed to install mermaid nodejs @@ -28,4 +28,5 @@ sphinx>=5.0 sphinx-autobuild sphinx-copybutton sphinx-design +sphinxext-opengraph r-pkgdown diff --git a/docs/source/_static/banner.png b/docs/source/_static/banner.png new file mode 100644 index 0000000000..2f58c223e2 Binary files /dev/null and b/docs/source/_static/banner.png differ diff --git a/docs/source/conf.py b/docs/source/conf.py index b5e45a09c9..6e4858a179 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -43,6 +43,7 @@ "sphinx.ext.intersphinx", "sphinx_copybutton", "sphinx_design", + "sphinxext.opengraph", ] templates_path = ["_templates"] @@ -90,7 +91,10 @@ # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -html_css_files = ["css/custom.css"] +html_css_files = [ + "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css", + "css/custom.css", +] html_static_path = ["_static"] html_theme = "furo" html_theme_options = { @@ -110,3 +114,11 @@ # -- Options for numpydoc ---------------------------------------------------- numpydoc_class_members_toctree = False + +# -- Options for sphinxext.opengraph ----------------------------------------- + +if "dev" in release: + ogp_site_url = "https://arrow.apache.org/adbc/main/" +else: + ogp_site_url = f"https://arrow.apache.org/adbc/{release}/" +ogp_image = "_static/banner.png" diff --git a/docs/source/driver/sqlite.rst b/docs/source/driver/sqlite.rst index 6ec4a02b42..3f78bc919c 100644 --- a/docs/source/driver/sqlite.rst +++ b/docs/source/driver/sqlite.rst @@ -211,7 +211,7 @@ Example .. code-block:: go - # TODO + // TODO .. tab-item:: Python :sync: python diff --git a/docs/source/index.rst b/docs/source/index.rst index 69551b0b7e..96608fe33b 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -15,23 +15,191 @@ .. specific language governing permissions and limitations .. under the License. +:sd_hide_title: + ================= Apache Arrow ADBC ================= -To get started, choose a language and follow the Quickstart page. +.. div:: + :style: border-bottom: 1px solid var(--color-foreground-border); + + .. grid:: + :margin: 4 3 0 0 + + .. grid-item:: + :columns: 12 12 12 12 + :class: sd-fs-2 + + ADBC: Arrow Database Connectivity + + .. grid-item:: + :columns: 12 12 12 12 + :class: sd-fs-4 + + **Cross-language**, **Arrow-native** database access. + +ADBC is a set of APIs and libraries for Arrow-native access to databases. +Execute SQL and Substrait queries, query database catalogs, and more, all +using Arrow data to eliminate unnecessary data copies, speed up access, and +make it more convenient to build analytical applications. + +.. div:: + + .. grid:: + :margin: 4 4 0 0 + :gutter: 1 + + .. grid-item-card:: + :columns: 12 12 4 4 + + Quickstart + ^^^ + + Get started with simple examples in your language of choice. + + +++ + + .. button-ref:: cpp/quickstart + :ref-type: doc + :color: secondary + :expand: + + C/C++ + + .. button-link:: https://pkg.go.dev/github.com/apache/arrow-adbc/go/adbc + :color: secondary + :expand: + + Go + + .. button-ref:: java/quickstart + :ref-type: doc + :color: secondary + :expand: + + Java + + .. button-ref:: python/quickstart + :ref-type: doc + :color: secondary + :expand: + + Python + + .. button-ref:: r/index + :ref-type: doc + :color: secondary + :expand: + + R + + .. grid-item-card:: + :columns: 12 4 4 4 + + Specification + ^^^ + + Learn about the underlying API specification. + + +++ + + .. button-link:: https://arrow.apache.org/blog/2023/01/05/introducing-arrow-adbc/ + :color: secondary + :expand: -To learn more about ADBC, see the `introductory blog post -`_. + Introducing ADBC :octicon:`cross-reference` + + .. button-ref:: format/specification + :ref-type: doc + :color: secondary + :expand: + + Specification + + .. button-ref:: faq + :ref-type: doc + :color: secondary + :expand: + + FAQ + + .. grid-item-card:: + :columns: 12 4 4 4 + + Development + ^^^ + + Report bugs, ask questions, and contribute to Apache Arrow. + + +++ + + .. button-link:: https://github.com/apache/arrow-adbc/issues + :color: secondary + :expand: + + :fab:`github` Issues/Questions + + .. button-link:: https://arrow.apache.org/community/ + :color: secondary + :expand: + + Mailing List :octicon:`cross-reference` + + .. button-link:: https://github.com/apache/arrow-adbc/blob/main/CONTRIBUTING.md + :color: secondary + :expand: + + Contributing :octicon:`cross-reference` + +Why ADBC? +========= + +.. grid:: 1 2 2 2 + :margin: 4 4 0 0 + :gutter: 1 + + .. grid-item-card:: Arrow-native + + Execute queries and get back results in Arrow format, eliminating extra + data copies for Arrow-native backends. + + .. grid-item-card:: Backend-agnostic + :link: driver/status + :link-type: doc + + Connect to all kinds of databases, even ones that aren't Arrow-native. + ADBC drivers optimize conversion to/from Arrow where required, saving + work for developers. + + +++ + See Supported Drivers + + .. grid-item-card:: Cross-language + + Work in C/C++, C#, Go, Java, Python, R, Ruby, and more. + + .. grid-item-card:: Full-featured + + Execute SQL and Substrait, query database catalogs, inspect table + schemas, and more. ADBC handles common tasks without having to pull in + another database client. + + .. grid-item-card:: Language-native + + Use language-native APIs that you're already familiar with, like DBAPI + in Python, ``database/sql`` in Go, or DBI in R. .. toctree:: :maxdepth: 1 + :hidden: faq .. toctree:: :maxdepth: 1 :caption: Supported Environments + :hidden: C/C++ Go @@ -42,6 +210,7 @@ To learn more about ADBC, see the `introductory blog post .. toctree:: :maxdepth: 1 :caption: Drivers + :hidden: driver/installation driver/status @@ -55,6 +224,7 @@ To learn more about ADBC, see the `introductory blog post .. toctree:: :maxdepth: 1 :caption: Specification + :hidden: format/specification format/versioning @@ -63,28 +233,8 @@ To learn more about ADBC, see the `introductory blog post .. toctree:: :maxdepth: 1 :caption: Development + :hidden: development/contributing development/nightly development/releasing - -ADBC (Arrow Database Connectivity) is an API specification for -Arrow-based database access. It provides a set of APIs in C, Go, and -Java that define how to interact with databases, including executing -queries and fetching metadata, that use Arrow data for result sets and -query parameters. These APIs are then implemented by drivers (or a -driver manager) that use some underlying protocol to work with -specific databases. - -ADBC aims to provide applications with a single, Arrow-based API to -work with multiple databases, whether Arrow-native or not. -Application code should not need to juggle conversions from -non-Arrow-native datasources alongside bindings for multiple -Arrow-native database protocols. - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search`