[workspace]
[package]
name = "foculus"
version = "0.1.2"
edition = "2024"
description = "Consensus by convergence โ VEC substrate plus pluggable fork-choice"
license-file = "LICENSE"
repository = "https://github.com/cyberia-to/foculus"
keywords = ["consensus", "vdf", "settlement", "cyber"]
categories = ["cryptography", "network-programming"]
readme = "README.md"
bin
name = "foculus"
path = "src/bin/main.rs"
[features]
default = []
net = ["dep:iroh", "dep:tokio", "dep:tracing-subscriber"]
[dependencies]
nebu = { package = "strata-nebu", version = "0.1", path = "../strata/nebu/rs" }
cyber-hemera = { version = "0.3", path = "../hemera/rs" }
bbg = { version = "0.1.1", path = "../bbg/rs" }
zheng = { version = "0.1.1", path = "../zheng/rs" }
lens = { package = "cyber-lens", version = "0.1.1", path = "../lens/src" }
tape = { package = "cyber-tape", version = "0.1", path = "../tape/impl/rust" }
tru = { package = "cyber-tru", version = "0.1.1", path = "../tru/rs" }
tok = { package = "cyber-tok", version = "0.1.1", path = "../tok/rs" }
# mdns is feature-gated in crates.io iroh โ required for SettleRadio / SyncNode
iroh = { version = "0.96", optional = true, features = ["address-lookup-mdns"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["full"], optional = true }
anyhow = "1"
rand = "0.9"
clap = { version = "4", features = ["derive"] }
tracing-subscriber = { version = "0.3", optional = true }
[dev-dependencies]
proptest = "1"
tempfile = "3"