[package]
edition = "2024"
name = "golem-schema"
version = "1.6.0-dev.2"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Golem schema and value model"
homepage = "https://golem.cloud"
readme = false
license-file = "LICENSE"
repository = "https://github.com/golemcloud/golem"
resolver = "2"
[features]
bigdecimal = ["dep:bigdecimal"]
bit_vec = ["dep:bit-vec"]
bytes = ["dep:bytes"]
chrono = []
default = ["rich-validation"]
derive = []
full = [
"rich-validation",
"protobuf",
"dep:desert_rust",
"dep:poem",
"dep:poem-openapi",
]
guest = [
"dep:wasip2",
"dep:wit-bindgen",
]
host = [
"rich-validation",
"native-stream",
"dep:wasmtime",
"dep:wasmtime-wasi",
]
mac_address = ["dep:mac_address"]
native-stream = []
nonempty_collections = ["dep:nonempty-collections"]
num_bigint = ["dep:num-bigint"]
proptest = ["dep:proptest"]
protobuf = [
"dep:prost",
"dep:miette",
"dep:prost-build",
"dep:protox",
]
regex = ["dep:regex"]
rich-validation = [
"regex",
"url",
]
rust_decimal = ["dep:rust_decimal"]
serde_json_types = []
url = ["dep:url"]
[lib]
name = "golem_schema"
path = "src/lib.rs"
harness = false
[[test]]
name = "direct_wire"
path = "tests/direct_wire.rs"
harness = false
required-features = ["guest"]
[[test]]
name = "feature_matrix"
path = "tests/feature_matrix.rs"
harness = false
[[test]]
name = "owned_typed_wit"
path = "tests/owned_typed_wit.rs"
harness = false
required-features = ["guest"]
[[bench]]
name = "schema_hotpath"
path = "benches/schema_hotpath.rs"
harness = false
[dependencies.base64]
version = "0.22.1"
[dependencies.bigdecimal]
version = "0.4.7"
features = [
"serde",
"string-only",
]
optional = true
[dependencies.bit-vec]
version = "0.6.3"
features = ["serde"]
optional = true
[dependencies.blake3]
version = "1.8.2"
features = ["rayon"]
[dependencies.bytes]
version = "1.10.1"
optional = true
[dependencies.chrono]
version = "0.4.40"
features = ["serde"]
[dependencies.desert_rust]
version = "0.1.11"
features = [
"bigdecimal",
"uuid",
"chrono",
"nonempty-collections",
"serde-json",
"bit-vec",
"url",
"mac_address",
"im",
]
optional = true
[dependencies.golem-schema-derive]
version = "=1.6.0-dev.2"
[dependencies.mac_address]
version = "1.1.8"
optional = true
[dependencies.nonempty-collections]
version = "1.2.1"
optional = true
[dependencies.num-bigint]
version = "0.4"
optional = true
[dependencies.poem]
version = "=3.1.12"
features = [
"cookie",
"multipart",
"opentelemetry",
"prometheus",
"requestid",
"test",
]
optional = true
[dependencies.poem-openapi]
version = "=5.1.16"
features = [
"chrono",
"cookie",
"humantime",
"swagger-ui",
"time",
"url",
"uuid",
"websocket",
]
optional = true
[dependencies.proptest]
version = "=1.5.0"
optional = true
[dependencies.prost]
version = "0.14.1"
optional = true
[dependencies.regex]
version = "1.11.1"
optional = true
[dependencies.rust_decimal]
version = "1.39.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
features = ["raw_value"]
[dependencies.thiserror]
version = "2.0.12"
[dependencies.url]
version = "2.5.4"
features = ["serde"]
optional = true
[dependencies.uuid]
version = "1.15.1"
features = [
"serde",
"v4",
"v5",
"v7",
]
[dependencies.wasip2]
version = "1.0.2"
optional = true
[dependencies.wasmtime]
version = "=46.0.1"
features = [
"component-model",
"component-model-async",
"component-model-bytes",
"anyhow",
]
optional = true
[dependencies.wasmtime-wasi]
version = "=46.0.1"
features = ["p3"]
optional = true
[dependencies.wit-bindgen]
version = "=0.59.0"
features = ["async-spawn"]
optional = true
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.proptest]
version = "=1.5.0"
[dev-dependencies.test-r]
version = "3.0.12"
default-features = true
[build-dependencies.miette]
version = "7.6.0"
features = ["fancy"]
optional = true
[build-dependencies.prost-build]
version = "0.14.1"
optional = true
[build-dependencies.protox]
version = "0.9.0"
optional = true