mirror of https://github.com/synctv-org/synctv
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.5 KiB
TOML
116 lines
2.5 KiB
TOML
[package]
|
|
name = "synctv-cluster"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
|
|
[features]
|
|
default = ["tls-aws-lc", "tls-webpki-roots"]
|
|
# Enables integration-test hooks that mutate internal discovery state.
|
|
test-support = []
|
|
k8s = ["kube", "k8s-openapi"]
|
|
tls-aws-lc = [
|
|
"synctv-core/tls-aws-lc",
|
|
"synctv-common/tls-aws-lc",
|
|
"tonic/tls-aws-lc",
|
|
"kube?/aws-lc-rs",
|
|
]
|
|
tls-ring = [
|
|
"synctv-core/tls-ring",
|
|
"synctv-common/tls-ring",
|
|
"tonic/tls-ring",
|
|
"kube?/ring",
|
|
]
|
|
tls-webpki-roots = [
|
|
"synctv-core/tls-webpki-roots",
|
|
"synctv-common/tls-webpki-roots",
|
|
"tonic/tls-webpki-roots",
|
|
"redis/tokio-rustls-comp",
|
|
"redis/tls-rustls-webpki-roots",
|
|
"kube?/rustls-tls",
|
|
"kube?/webpki-roots",
|
|
]
|
|
tls-native-roots = [
|
|
"synctv-core/tls-native-roots",
|
|
"synctv-common/tls-native-roots",
|
|
"tonic/tls-native-roots",
|
|
"redis/tokio-rustls-comp",
|
|
"kube?/rustls-tls",
|
|
]
|
|
|
|
[dependencies]
|
|
# Internal
|
|
synctv-core = { workspace = true, default-features = false }
|
|
synctv-common = { workspace = true, default-features = false }
|
|
|
|
# Async
|
|
tokio.workspace = true
|
|
tokio-util.workspace = true
|
|
async-trait.workspace = true
|
|
futures.workspace = true
|
|
|
|
# gRPC
|
|
tonic.workspace = true
|
|
tonic-prost.workspace = true
|
|
prost.workspace = true
|
|
prost-types.workspace = true
|
|
|
|
# Redis
|
|
redis.workspace = true
|
|
|
|
# Kubernetes (in-cluster leader election & service discovery)
|
|
# Optional: only needed for k8s_dns discovery and k8s_lease leader election
|
|
kube = { workspace = true, optional = true }
|
|
k8s-openapi = { workspace = true, optional = true }
|
|
|
|
# Caching
|
|
dashmap.workspace = true
|
|
moka.workspace = true
|
|
|
|
# Serialization
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
|
|
# Time
|
|
chrono.workspace = true
|
|
|
|
# Utilities
|
|
anyhow.workspace = true
|
|
http.workspace = true
|
|
thiserror.workspace = true
|
|
parking_lot.workspace = true
|
|
rand.workspace = true
|
|
|
|
# Security
|
|
subtle.workspace = true
|
|
|
|
# Resilience
|
|
failsafe.workspace = true
|
|
|
|
# Logging
|
|
tracing.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[build-dependencies]
|
|
tonic-prost-build.workspace = true
|
|
|
|
[dev-dependencies]
|
|
criterion.workspace = true
|
|
mockall.workspace = true
|
|
synctv-core-testing.workspace = true
|
|
tempfile.workspace = true
|
|
tokio = { workspace = true, features = ["test-util"] }
|
|
|
|
[[test]]
|
|
name = "cluster_mode_transitions_tests"
|
|
path = "tests/cluster_mode_transitions_tests.rs"
|
|
required-features = ["test-support"]
|
|
|
|
[[test]]
|
|
name = "heartbeat_backoff_tests"
|
|
path = "tests/heartbeat_backoff_tests.rs"
|
|
required-features = ["test-support"]
|