rust-zero-core 0.1.0-alpha.1

Runtime primitives for rust-zero services
Documentation
[package]
name = "rust-zero-core"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Runtime primitives for rust-zero services"
documentation = "https://docs.rs/rust-zero-core"

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

[features]
default = []
etcd = ["dep:etcd-client"]
kubernetes = ["dep:futures", "dep:k8s-openapi", "dep:kube"]
stores = ["stores-mongo", "stores-redis", "stores-sql"]
stores-mongo = ["dep:mongodb"]
stores-redis = ["dep:futures", "dep:redis"]
stores-sql = ["dep:sqlx"]
telemetry = [
    "dep:opentelemetry",
    "dep:opentelemetry-otlp",
    "dep:opentelemetry_sdk",
]

[[example]]
name = "etcd_discovery"
required-features = ["etcd"]

[[example]]
name = "kubernetes_discovery"
required-features = ["kubernetes"]

[[example]]
name = "telemetry"
required-features = ["telemetry"]

[[example]]
name = "external_stores"
required-features = ["stores"]

[dependencies]
base64 = "0.22"
etcd-client = { version = "0.19", optional = true }
flate2 = "1"
futures = { version = "0.3", optional = true }
hmac = "0.12"
json5 = "1.3"
libc = "0.2"
k8s-openapi = { version = "0.28", features = ["latest"], optional = true }
kube = { version = "4.2", features = ["runtime"], optional = true }
opentelemetry = { version = "0.32", features = ["trace"], optional = true }
opentelemetry-otlp = { version = "0.32", default-features = false, features = ["grpc-tonic", "http-proto", "reqwest-blocking-client", "trace"], optional = true }
opentelemetry_sdk = { version = "0.32", features = ["trace"], optional = true }
mongodb = { version = "3.8", optional = true }
redis = { version = "0.32", features = ["cluster-async", "tokio-comp"], optional = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
sha2 = "0.10"
sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "sqlite", "postgres", "mysql"], optional = true }
tokio = { version = "1", features = ["macros", "rt", "signal", "sync", "time"] }
toml = "0.8"