# SPDX-License-Identifier: Apache-2.0
[package]
name = "substrait"
version = "0.47.1"
edition = "2021"
rust-version = "1.75.0"
description = "Cross-Language Serialization for Relational Algebra"
documentation = "https://docs.rs/substrait"
readme = "README.md"
homepage = "https://substrait.io"
repository = "https://github.com/substrait-io/substrait-rs"
license = "Apache-2.0"
keywords = ["substrait"]
build = "build.rs"
include = [
    "LICENSE",
    "build.rs",
    "gen/",
    "src/**/*.rs",
    "substrait/LICENSE",
    "substrait/README.md",
    "substrait/extensions/**/*.yaml",
    "substrait/proto/**/*.proto",
    "substrait/text/**/*.yaml",
]

[features]
default = []
extensions = ["dep:once_cell", "dep:serde_yaml"]
parse = ["dep:hex", "dep:thiserror", "dep:url", "semver"]
protoc = ["dep:protobuf-src"]
semver = ["dep:semver"]
serde = ["dep:pbjson", "dep:pbjson-build", "dep:pbjson-types"]

[dependencies]
hex = { version = "0.4.3", optional = true }
once_cell = { version = "1.20.2", optional = true }
pbjson = { version = "0.7.0", optional = true }
pbjson-types = { version = "0.7.0", optional = true }
prost = "0.13.3"
prost-types = "0.13.3"
url = { version = "2.5.3", optional = true }
regress = "0.10.1"
semver = { version = "1.0.23", optional = true }
serde = { version = "1.0.214", features = ["derive"] }
serde_json = "1.0.132"
serde_yaml = { version = "0.9.34", optional = true }
thiserror = { version = "2.0.3", optional = true }

[build-dependencies]
heck = "0.5.0"
pbjson-build = { version = "0.7.0", optional = true }
prettyplease = "0.2.25"
prost-build = { version = "0.13.3", default-features = false }
protobuf-src = { version = "2.1.0", optional = true }
schemars = "0.8.21"
semver = "1.0.23"
serde_yaml = "0.9.34"
syn = "2.0.85"
typify = "0.2.0"
walkdir = "2.5.0"

[package.metadata.docs.rs]
all-features = true
