[package]
edition = "2024"
rust-version = "1.85.0"
name = "schematic"
version = "0.19.7"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A layered serde configuration and schema library."
homepage = "https://moonrepo.github.io/schematic"
readme = "README.md"
license = "MIT"
repository = "https://github.com/moonrepo/schematic"
resolver = "2"
[[package.metadata.release.pre-release-replacements]]
file = "../../CHANGELOG.md"
search = "Unreleased"
replace = "{{version}}"
[package.metadata.docs.rs]
all-features = true
[features]
config = [
"dep:serde_path_to_error",
"dep:starbase_styles",
"schematic_macros/config",
]
default = [
"config",
"env",
"extends",
"validate",
]
env = ["schematic_macros/env"]
extends = ["schematic_macros/extends"]
json = [
"dep:json-strip-comments",
"dep:serde_json",
"schematic_types/serde_json",
]
pkl = [
"dep:rpkl",
"schematic_types/serde_rpkl",
]
renderer_json_schema = [
"json",
"schema",
"dep:markdown",
"dep:schemars",
]
renderer_template = ["schema"]
renderer_typescript = ["schema"]
ron = [
"dep:ron",
"schematic_types/serde_ron",
]
schema = [
"dep:convert_case",
"dep:indexmap",
"schematic_macros/schema",
]
schema_serde = [
"schema",
"schematic_types/serde",
]
toml = [
"dep:toml",
"schematic_types/serde_toml",
]
tracing = ["schematic_macros/tracing"]
type_chrono = ["schematic_types/chrono"]
type_indexmap = ["schematic_types/indexmap"]
type_regex = [
"schematic_types/regex",
"dep:regex",
]
type_relative_path = ["schematic_types/relative_path"]
type_rust_decimal = [
"schematic_types/rust_decimal",
"garde?/rust_decimal",
]
type_semver = [
"schematic_types/semver",
"dep:semver",
]
type_url = ["schematic_types/url"]
type_uuid = ["schematic_types/uuid"]
url = ["dep:reqwest"]
validate = [
"dep:garde",
"schematic_macros/validate",
]
validate_email = [
"validate",
"garde/email",
]
validate_url = [
"validate",
"garde/url",
]
yaml = [
"dep:serde_norway",
"schematic_types/serde_yaml_norway",
]
[lib]
name = "schematic"
path = "src/lib.rs"
[[example]]
name = "show_error"
path = "examples/show_error.rs"
[[test]]
name = "code_sources_test"
path = "tests/code_sources_test.rs"
[[test]]
name = "config_unit_struct"
path = "tests/config_unit_struct.rs"
[[test]]
name = "defaults_test"
path = "tests/defaults_test.rs"
[[test]]
name = "env_test"
path = "tests/env_test.rs"
[[test]]
name = "errors_test"
path = "tests/errors_test.rs"
[[test]]
name = "extends_test"
path = "tests/extends_test.rs"
[[test]]
name = "file_sources_test"
path = "tests/file_sources_test.rs"
[[test]]
name = "generator_test"
path = "tests/generator_test.rs"
[[test]]
name = "helpers_test"
path = "tests/helpers_test.rs"
[[test]]
name = "macro_enum_test"
path = "tests/macro_enum_test.rs"
[[test]]
name = "macros_test"
path = "tests/macros_test.rs"
[[test]]
name = "merge_test"
path = "tests/merge_test.rs"
[[test]]
name = "partialize_test"
path = "tests/partialize_test.rs"
[[test]]
name = "schematic_enum_test"
path = "tests/schematic_enum_test.rs"
[[test]]
name = "schematic_test"
path = "tests/schematic_test.rs"
[[test]]
name = "settings_test"
path = "tests/settings_test.rs"
[[test]]
name = "transform_test"
path = "tests/transform_test.rs"
[[test]]
name = "url_sources_test"
path = "tests/url_sources_test.rs"
[[test]]
name = "utils"
path = "tests/utils.rs"
[[test]]
name = "validate_test"
path = "tests/validate_test.rs"
[[test]]
name = "variants_test"
path = "tests/variants_test.rs"
[dependencies.convert_case]
version = "0.10.0"
optional = true
[dependencies.garde]
version = "0.22.1"
features = ["regex"]
optional = true
default-features = false
[dependencies.indexmap]
version = "2.13.0"
features = ["serde"]
optional = true
[dependencies.json-strip-comments]
version = "3.1.0"
optional = true
[dependencies.markdown]
version = "1.0.0"
optional = true
[dependencies.miette]
version = "7.6.0"
[dependencies.regex]
version = "1.12.2"
optional = true
[dependencies.reqwest]
version = "0.13.1"
features = ["blocking"]
optional = true
default-features = false
[dependencies.ron]
version = "0.12.0"
optional = true
[dependencies.rpkl]
version = "0.7.0"
optional = true
[dependencies.schemars]
version = "0.8.22"
optional = true
default-features = false
[dependencies.schematic_macros]
version = "0.19.4"
[dependencies.schematic_types]
version = "0.11.5"
[dependencies.semver]
version = "1.0.27"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde-content]
version = "0.1.2"
[dependencies.serde_json]
version = "1.0.149"
features = ["preserve_order"]
optional = true
[dependencies.serde_norway]
version = "0.9.42"
optional = true
[dependencies.serde_path_to_error]
version = "0.1.20"
optional = true
[dependencies.starbase_styles]
version = "0.6.5"
optional = true
[dependencies.thiserror]
version = "2.0.17"
[dependencies.toml]
version = "1.1.2"
optional = true
[dependencies.tracing]
version = "0.1.44"
[dev-dependencies.chrono]
version = "0.4.42"
features = ["serde"]
[dev-dependencies.derive_more]
version = "2.1.1"
features = [
"try_into",
"as_ref",
]
[dev-dependencies.indexmap]
version = "2.13.0"
[dev-dependencies.relative-path]
version = "2.0.1"
features = ["serde"]
[dev-dependencies.reqwest]
version = "0.13.1"
features = [
"blocking",
"rustls",
]
default-features = false
[dev-dependencies.rust_decimal]
version = "1.39.0"
[dev-dependencies.semver]
version = "1.0.27"
features = ["serde"]
[dev-dependencies.serial_test]
version = "3.3.1"
[dev-dependencies.similar]
version = "2.7.0"
[dev-dependencies.starbase_sandbox]
version = "0.10.7"
[dev-dependencies.strip-ansi-escapes]
version = "0.2"
[dev-dependencies.url]
version = "2.5.8"
features = ["serde"]
[dev-dependencies.uuid]
version = "1.19.0"
features = ["serde"]