|
| 1 | +# Powered by Substrait |
| 2 | + |
| 3 | +In addition to the work maintained in repositories within the |
| 4 | +[substrait-io GitHub organization](https://github.com/substrait-io), a growing |
| 5 | +list of other open source projects have adopted Substrait. |
| 6 | + |
| 7 | + |
| 8 | +[//]: # (Maintain this list in alphabetical order) |
| 9 | + |
| 10 | +[Acero](https://arrow.apache.org/docs/cpp/streaming_execution.html) |
| 11 | +: Acero is a query execution engine implemented as a part of the Apache Arrow |
| 12 | + C++ library. Acero provides a Substrait consumer interface. |
| 13 | + |
| 14 | +[ADBC](https://arrow.apache.org/adbc/) |
| 15 | +: ADBC (Arrow Database Connectivity) is an API specification for Apache |
| 16 | + Arrow-based database access. ADBC allows applications to pass queries either |
| 17 | + as SQL strings or Substrait plans. |
| 18 | + |
| 19 | +[Arrow Flight SQL](https://arrow.apache.org/docs/format/FlightSql.html) |
| 20 | +: Arrow Flight SQL is a client-server protocol for interacting with databases |
| 21 | + and query engines using the Apache Arrow in-memory columnar format and the |
| 22 | + [Arrow Flight RPC](https://arrow.apache.org/docs/format/Flight.html) |
| 23 | + framework. Arrow Flight SQL allows clients to send queries as SQL strings or |
| 24 | + Substrait plans. |
| 25 | + |
| 26 | +[DataFusion](https://arrow.apache.org/datafusion/) |
| 27 | +: DataFusion is an extensible query planning, optimization, and execution |
| 28 | + framework, written in Rust, that uses Apache Arrow as its in-memory format. |
| 29 | + DataFusion provides a |
| 30 | + [Substrait producer and consumer](https://github.com/datafusion-contrib/datafusion-substrait) |
| 31 | + that can convert DataFusion logical plans to and from Substrait plans. |
| 32 | + |
| 33 | +[DuckDB](https://duckdb.org) |
| 34 | +: DuckDB is an in-process SQL OLAP database management system. DuckDB provides |
| 35 | + a [Substrait extension](https://duckdb.org/docs/extensions/substrait) |
| 36 | + that allows users to produce and consume Substrait plans through DuckDB's |
| 37 | + SQL, Python, and R APIs. |
| 38 | + |
| 39 | +[Gluten](https://github.com/oap-project/gluten) |
| 40 | +: Gluten is a plugin for Apache Spark that allows computation to be offloaded |
| 41 | + to engines that have better performance or efficiency than Spark's built-in |
| 42 | + JVM-based engine. Gluten converts Spark physical plans to Substrait plans. |
| 43 | + |
| 44 | +[Ibis](https://ibis-project.org/) |
| 45 | +: Ibis is a Python library that provides a lightweight, universal interface |
| 46 | + for data wrangling. It includes a dataframe API for Python with support for |
| 47 | + more than 10 query execution engines, plus a |
| 48 | + [Substrait producer](https://github.com/ibis-project/ibis-substrait) |
| 49 | + to enable support for Substrait-consuming execution engines. |
| 50 | + |
| 51 | +[Substrait R Interface](https://github.com/voltrondata/substrait-r) |
| 52 | +: The Substrait R interface package allows users to construct Substrait plans |
| 53 | + from R for evaluation by Substrait-consuming execution engines. The package |
| 54 | + provides a [dplyr](https://dplyr.tidyverse.org) backend as well as |
| 55 | + lower-level interfaces for creating Substrait plans and integrations with |
| 56 | + Acero and DuckDB. |
| 57 | + |
| 58 | +[Velox](https://velox-lib.io) |
| 59 | +: Velox is a unified execution engine aimed at accelerating data management |
| 60 | + systems and streamlining their development. Velox provides a Substrait |
| 61 | + consumer interface. |
| 62 | + |
| 63 | + |
| 64 | +To add your project to this list, please open a |
| 65 | +[pull request](https://github.com/substrait-io/substrait/edit/main/site/docs/community/powered_by.md) |
0 commit comments