# substrait-io/substrait

A cross platform way to express data transformation, relational algebra, standardized record expression and plans.

Repository: https://github.com/substrait-io/substrait
Canonical: https://ross.abutalabs.com/products/substrait
Homepage: https://substrait.io
Language: Python
License: Apache-2.0
License Family: permissive
Topics: execution-plan, query-plan, relational-algebra, specification
Last push: 2026-08-25T15:25:52+00:00

## Health v2 (maintenance only)
Score: 99/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 99, longevity 100
- inputs: {"age_days": 1828, "days_push": 8, "days_rel": 10, "gap_med": 7.0, "n_releases_24m": 55}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1549, forks 201 (observed 2026-08-28T04:05:01.949594+00:00)

## What it is
Substrait is a cross-language specification and tooling for describing data compute operations as standardized relational algebra query plans, with human-readable text and compact binary representations. It lets systems like SQL parsers, execution engines, and query optimizers exchange plans without custom integrations.

## Use cases
- pass a query plan from a SQL parser to an execution engine
- serialize SQL views for consistent use across Spark and Trino
- submit the same plan to DataFusion and Postgres
- build a pluggable query plan visualizer
- run pandas-style compute inside another execution engine
- standardize plan interchange between query engines

## When to choose
- you need interoperable query plans across multiple engines or languages
- you are building a SQL frontend or execution engine and want an open plan format
- you want to swap execution engines without rewriting plan generation

## When to avoid
- you just need a single-engine query optimizer with no cross-system interchange
- you need a full SQL parser or execution engine rather than a plan format
- your systems already share a proprietary plan format and interoperability is not a goal

## Facets
- artifact type: library
- maturity: active
- function: serialization, parser, developer-tools
- domain: databases, apis, big-data
- platform: cross-platform, python
- tags: relational-algebra, query-plan, execution-plan, specification, interoperability, query-engine, data-engineering

## Member repositories
- substrait-io/substrait (main) score 99

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:01.949594+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:30:24.694071+00:00, confidence not recorded.
  - readme: https://github.com/substrait-io/substrait (fetched 2026-08-28T04:05:01.949594+00:00, sha 2926184328c1)
  - homepage: https://substrait.io (fetched 2026-08-29T11:31:14.764605+00:00, sha 3704b30ab599)
  - site_page: https://substrait.io/about (fetched 2026-08-29T11:31:14.774048+00:00, sha 62c1a4d897c5)
  - site_page: https://substrait.io/faq (fetched 2026-08-29T11:31:14.782934+00:00, sha 399877c44605)
- Data as of 2026-08-30T08:39:29.467469+00:00.
