Full serde-derived struct tree covering every block in plan §4 (MiroirConfig, NodeConfig, TaskStoreConfig, AdminConfig, HealthConfig, ScatterConfig, RebalancerConfig, ServerConfig, ConnectionPoolConfig, TaskRegistryConfig) and all 21 §13 advanced-capability sub-structs (ReshardingConfig through SearchUiConfig with nested auth/rate-limit/CSP/analytics structs), plus §14 horizontal-scaling structs (PeerDiscoveryConfig, LeaderElectionConfig, HpaConfig). Includes: - Layered loading via config crate: built-in defaults → file → env overrides - Config::validate() with 14 cross-field rules (HA requires redis, scoped_key timing inversion, node group bounds, tenant affinity range checks, etc.) - 10 unit tests: round-trip YAML, full plan example, minimal YAML defaults, and validation rejection cases Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
33 lines
922 B
TOML
33 lines
922 B
TOML
[package]
|
|
name = "miroir-core"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
[dependencies]
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yaml = "0.9"
|
|
twox-hash = "2"
|
|
thiserror = "2"
|
|
tracing = "0.1"
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
config = "0.14"
|
|
|
|
# Raft prototype (P12.OP2 research) — not for production use
|
|
# openraft 0.9.22 fails on stable Rust 1.87 (validit uses let_chains).
|
|
# The prototype simulates Raft; only bincode is needed for serialization benchmarks.
|
|
openraft = { version = "0.9", features = ["serde"], optional = true }
|
|
bincode = { version = "2", features = ["serde"], optional = true }
|
|
|
|
[features]
|
|
raft-proto = ["bincode"]
|
|
# Enable when openraft compiles on stable Rust:
|
|
# raft-full = ["openraft", "bincode"]
|
|
|
|
[[bin]]
|
|
name = "bench-reshard-load"
|
|
path = "benches/reshard_load.rs"
|
|
|
|
[dev-dependencies]
|