[package] name = "schematic" version = "0.17.6" edition = "2021" license = "MIT" description = "A layered serde configuration and schema library." homepage = "https://moonrepo.github.io/schematic" repository = "https://github.com/moonrepo/schematic" readme = "../../README.md" rust-version = "1.71.1" [package.metadata.release] pre-release-replacements = [ { file = "../../CHANGELOG.md", search = "Unreleased", replace = "{{version}}" }, ] [package.metadata.docs.rs] all-features = true [dependencies] schematic_macros = { version = "0.17.4", path = "../macros" } schematic_types = { version = "0.9.5", path = "../types" } miette = { workspace = true } thiserror = "1.0.66" tracing = { workspace = true } # config garde = { version = "0.20.0", default-features = false, optional = true, features = [ "regex", ] } serde = { workspace = true } serde_path_to_error = { version = "0.1.16", optional = true } starbase_styles = { version = "0.4.5", optional = true } # schema indexmap = { workspace = true, optional = true, features = ["serde"] } # json serde_json = { workspace = true, optional = true, features = [ "preserve_order", ] } # json schema markdown = { version = "1.0.0-alpha.21", optional = true } schemars = { version = "0.8.21", optional = true, default-features = false } # pkl rpkl = { workspace = true, optional = true } # toml toml = { workspace = true, optional = true } # yaml serde_yaml = { workspace = true, optional = true } # url reqwest = { workspace = true, optional = true, features = ["blocking"] } [features] default = ["config", "env", "extends", "validate"] config = [ "dep:serde_path_to_error", "dep:starbase_styles", "schematic_macros/config", ] schema = ["dep:indexmap", "schematic_macros/schema"] schema_serde = ["schema", "schematic_types/serde"] tracing = ["schematic_macros/tracing"] # Features env = ["schematic_macros/env"] extends = ["schematic_macros/extends"] url = ["dep:reqwest"] validate = ["dep:garde", "schematic_macros/validate"] # Formats json = ["dep:serde_json", "schematic_types/serde_json"] pkl = ["dep:rpkl", "schematic_types/serde_rpkl"] toml = ["dep:toml", "schematic_types/serde_toml"] yaml = ["dep:serde_yaml", "schematic_types/serde_yaml"] # Renderers renderer_json_schema = ["json", "schema", "dep:markdown", "dep:schemars"] renderer_template = ["schema"] renderer_typescript = ["schema"] # Types type_chrono = ["schematic_types/chrono"] type_indexmap = ["schematic_types/indexmap"] type_regex = ["schematic_types/regex"] type_relative_path = ["schematic_types/relative_path"] type_rust_decimal = ["schematic_types/rust_decimal"] type_semver = ["schematic_types/semver"] type_url = ["schematic_types/url"] # Validation validate_email = ["validate", "garde/email"] validate_url = ["validate", "garde/url"] [dev-dependencies] schematic = { path = ".", features = [ "config", "env", "extends", "json", "pkl", "renderer_json_schema", "renderer_template", "renderer_typescript", "schema", "schema_serde", "toml", "tracing", "type_chrono", "type_indexmap", "type_regex", "type_relative_path", "type_rust_decimal", "type_semver", "type_url", "url", "validate", "validate_email", "validate_url", "yaml", ] } reqwest = { workspace = true, features = [ "blocking", "rustls-tls-native-roots", ] } serial_test = "3.1.1" similar = "2.6.0" starbase_sandbox = { workspace = true } # Types chrono = { workspace = true, features = ["serde"] } indexmap = { workspace = true } regex = { workspace = true } relative-path = { workspace = true, features = ["serde"] } rust_decimal = { workspace = true } semver = { workspace = true, features = ["serde"] } url = { workspace = true, features = ["serde"] }