[package]
name = "hashiverse-server-lib"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Hashiverse server library — production node implementation (HTTPS + ACME, Kademlia routing, DDoS protection, on-disk persistence) for your open-source decentralized X/Twitter replacement."
readme = "README.md"
keywords = ["hashiverse", "p2p", "decentralized", "social-media", "social"]
categories = ["network-programming"]

[lints]
workspace = true

[lib]
name = "hashiverse_server_lib"
path = "src/lib.rs"

[dependencies]
hashiverse-lib = { workspace = true }

anyhow = { workspace = true }
log = { workspace = true }
bytes = { workspace = true }
scopeguard = { workspace = true }
hex = { workspace = true }
parking_lot = { workspace = true }
async-trait = { workspace = true }


clap = { version = "4.5.38", features = ["derive"] }
tokio = { version = "1.5", features = ["full"] }
tokio-util = { version = "0.7.14", features = ["codec", "rt"] }
futures = "0.3.31"
serial_test = "3.2.0"
lazy_static = "1.5.0"
fs2 = "0.4.3"
secrecy = "0.10.3"
axum = { version = "0.8.8", features = ["tokio"] }
rustls = { version = "0.23", default-features = false, features = ["ring", "tls12"] }
tower-http = { version = "0.6.8", features = ["cors", "timeout"] }
hyper = { version = "1", features = ["server", "http1", "http2"] }
hyper-util = { version = "0.1", features = ["tokio", "server-auto", "http1", "http2"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["tls12", "ring"] }
tower = { version = "0.5", features = ["util"] }
rcgen = { version = "0.14.6" }
reqwest = { version = "0.12.28", default-features = false, features = ["rustls-tls-manual-roots", "rustls-tls-native-roots"] }
instant-acme = { version = "0.8.4", default-features = false, features = ["ring", "hyper-rustls"] }
rustls-pemfile = "2.2.0"
rustls-pki-types = "1.13.2"
fjall = { version = "3.1.4", features = ["lz4"] }
postcard = { version = "1.1.3", features = ["use-std"]}
serde = { version = "1.0.228" }
ouroboros = "0.18.5"
moka = { version = "0.12", features = ["sync"] }
sysinfo = { version = "0.39.2", default-features = false, features = ["system", "disk"] }
serde_json = { version = "1.0.145" }

[dev-dependencies]
hashiverse-lib = { workspace = true, features = ["generic-tests"] }
