[package]
name = "zel_core"
version.workspace = true
edition.workspace = true
description = "Type-safe RPC framework built on Iroh with support for methods, subscriptions, notifications, and raw streams"
license.workspace = true
repository.workspace = true
keywords = ["rpc", "iroh", "async", "networking", "p2p"]
categories = ["network-programming", "asynchronous"]
readme = "../README.md"
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wasm_browser)'] }
[features]
metrics = ["iroh/metrics"]
[dependencies]
anyhow = "1.0.100"
async-trait = "0.1.89"
env_logger = "0.11.8"
futures = "0.3.31"
iroh = { version = "0.95.1", features = ["metrics"] }
log = "0.4.28"
tracing = "0.1"
serde = "1.0.228"
serde_json = "1.0.145"
thiserror = "2.0.17"
tokio = { version = "1.48.0", features = ["full"] }
tokio-util = { version = "0.7.17", features = ["codec"] }
tower = "0.5"
bytes = { version = "1.11.0", features = ["serde"] }
zel_macros = { version = "0.3.0", path = "../zel_macros" }
zel_types = { version = "0.3.0", path = "../zel_types" }
iroh-quinn = "0.14.0"
backon = { version = "1.6.0", features = ["tokio"] }
circuitbreaker-rs = { version = "0.1.1", features = ["tokio", "async"] }
rng = "0.1.0"
rand = "0.9.2"
[dev-dependencies]
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] }
iroh-metrics = { version = "0.37.0", features = ["service"] }