[package] name = "substrait-validator" description = "Substrait validator" homepage = "https://substrait.io/" repository = "https://github.com/substrait-io/substrait-validator" readme = "README.md" version = "0.1.1" edition = "2021" license = "Apache-2.0" include = ["src", "build.rs", "README.md"] [features] # Enable to get some extra developer documentation from cargo doc. Be sure to # use this with --document-private-items as well. Enabling this doesn't # functionally change anything. private_docs = [] [dependencies] # Prost is used to deal with protobuf serialization and deserialization. prost = "0.13.3" prost-types = "0.13.3" # Prost doesn't generate any introspection stuff, so we hack that stuff in with # our own procedural macros. substrait-validator-derive = { path = "../derive", version = "0.1.1" } # Google/protobuf has a funny idea about case conventions (it converts them all # over the place) and prost remaps to Rust's conventions to boot. So, to # recover the original names as much as possible, we need some case conversion # of our own. heck = "0.5" # Used for dealing with deserializing the YAML extension files. serde_yaml = "0.9" # The schema for the extension files uses jsonschema syntax. The rust crate for # schema validation with this format this uses serde_json types as input for # both the schema and the input, so we need to depend on that as well, even # though we don't actually do any JSON serialization and deserialization. jsonschema = { version = "0.18", default-features = false } serde_json = "1" # Used for checking identifier syntax (could be removed if regexes don't end up # being useful elsewhere too). regex = "1.11" # Used for the type derivation DSL. antlr-rust = "0.3.0-beta" # Used for checking URI syntax. uriparse = "0.6" # Used for only compiling regexes and the extension file schema once. once_cell = "1.19" # Various small helper crates for the diagnostic/error enums. thiserror = "1.0" strum = "0.26" strum_macros = "0.26" num-traits = "0.2" num-derive = "0.4" # For intersperse(). itertools = "0.13" # Glob patterns are used in the configuration structure and are used to # syntax-check URI glob patterns in the Substrait plans. glob = "0.3" # Used to resolve YAML URIs. If the curl feature is disabled, only file:// # URLs will work without adding a custom resolver. url = "2.5" curl = { version = "0.4", optional = true } # Used for interpretation and conversion of various date/time-related literals # in plans. chrono = "0.4" # Used for pretty-printing floating point literal values. float-pretty-print = "0.1" # Used by the HTML exporter. base64 = "0.22" percent-encoding = "2.3" # Used for representing and checking Substrait versions. semver = "1.0" [build-dependencies] # Used for generating Rust structs from the protobuf definitions. prost-build = "0.13.3" # Used to automatically find all protobuf files. walkdir = "2"