soft3/radio/iroh-relay/Cargo.toml

[package]
name = "cyber-radio-relay"
version = "0.1.0"
edition = "2024"
readme = "README.md"
description = "radio (cyber transport) โ€” relay server and client; fork of iroh-relay"
license = "MIT OR Apache-2.0"
authors = ["n0 team"]
repository = "https://github.com/cyberia-to/radio"
keywords = ["networking", "holepunching", "p2p"]
rust-version = "1.89"

[lib]
name = "iroh_relay"
# We need "cdylib" to actually generate .wasm files when we run with --target=wasm32-unknown-unknown.
# It would be nice if we could make this target-dependent, but we can't (yet): https://github.com/rust-lang/cargo/issues/12260
crate-type = ["lib", "cdylib"]

[lints]
workspace = true

[dependencies]
bytes = "1.11"
derive_more = { version = "2.0.1", features = [
    "debug",
    "display",
    "from",
    "try_into",
    "deref",
] }
http = "1"
http-body-util = "0.1.0"
hyper = { version = "1", features = ["server", "client", "http1"] }
hyper-util = "0.1.1"
iroh-base = { package = "cyber-radio-base", version = "0.1", path = "../iroh-base", default-features = false, features = ["key", "relay"] }
iroh-metrics = { version = "0.38", default-features = false }
n0-future = "0.3"
num_enum = "0.7"
pin-project = "1"
pkarr = { version = "5", default-features = false, features = ["signed_packet"] }
postcard = { version = "1", default-features = false, features = [
    "alloc",
    "use-std",
    "experimental-derive",
] }
quinn = { package = "cyber-radio-quinn", path = "../quinn/quinn", version = "0.1", default-features = false, features = ["rustls-ring"] }
quinn-proto = { package = "cyber-radio-quinn-proto", path = "../quinn/quinn-proto", version = "0.1" }
rand = "0.9.2"
reqwest = { version = "0.12", default-features = false, features = [
    "rustls-tls",
] }
rustls = { version = "0.23.33", default-features = false, features = ["ring"] }
serde = { version = "1", features = ["derive", "rc"] }
strum = { version = "0.27", features = ["derive"] }
tokio = { version = "1", features = [
    "io-util",
    "macros",
    "sync",
    "rt",
] }
tokio-rustls = { version = "0.26", default-features = false, features = [
    "logging",
    "ring",
] }
tokio-util = { version = "0.7", features = ["io-util", "io", "codec", "rt"] }
tracing = "0.1"
url = { version = "2.5.3", features = ["serde"] }
webpki-roots = "1.0.3"
webpki_types = { package = "rustls-pki-types", version = "1.12" }
data-encoding = "2.6.0"
lru = "0.16.3"
z32 = "1.0.3"
n0-error = "0.1"

# server feature
clap = { version = "4", features = ["derive"], optional = true }
dashmap = { version = "6.1.0", optional = true }
ahash = { version = "0.8.11", optional = true } # minimal version fix
rcgen = { version = "0.14", optional = true }
reloadable-state = { version = "0.1", optional = true }
rustls-cert-reloadable-resolver = { version = "0.7.1", optional = true }
rustls-cert-file-reader = { version = "0.4.2", optional = true }
time = { version = "0.3.37", optional = true }
tokio-rustls-acme = { version = "0.9", optional = true }
tokio-websockets = { version = "0.12", features = ["rustls-bring-your-own-connector", "ring", "getrandom", "rand", "server"], optional = true } # server-side websocket implementation
simdutf8 = { version = "0.1.5", optional = true } # minimal version fix
sha1 = { version = "0.11.0-rc.2", optional = true }
toml = { version = "0.9", optional = true }
serde_json = { version = "1", optional = true }
tracing-subscriber = { version = "0.3", features = [
    "env-filter",
], optional = true }
hemera = { package = "cyber-hemera", version = "0.3", path = "../../hemera/rs" }
serde_bytes = "0.11.17"

# non-wasm-in-browser dependencies
[target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dependencies]
hickory-resolver = { version = "0.25.1", features = ["tokio", "https-ring"] }
tokio = { version = "1", features = [
    "io-util",
    "macros",
    "sync",
    "rt",
    "net",
    "fs",
    "io-std",
    "signal",
    "process",
] }
tokio-websockets = { version = "0.12", features = ["rustls-bring-your-own-connector", "ring", "getrandom", "rand", "client"] }

# wasm-in-browser dependencies
[target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies]
ws_stream_wasm = { version = "0.7.4", default-features = false }
getrandom = { version = "0.3.2", features = ["wasm_js"] }

[dev-dependencies]
clap = { version = "4", features = ["derive"] }
proptest = "1.2.0"
rand_chacha = "0.9"
tokio = { version = "1", features = [
    "io-util",
    "sync",
    "rt",
    "net",
    "fs",
    "macros",
    "time",
    "test-util",
] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
serde_json = "1"
n0-tracing-test = "0.3"

[build-dependencies]
cfg_aliases = "0.2.1"
vergen-gitcl = "1.0.8"

[features]
default = ["metrics"]
server = [
    "metrics",
    "dep:clap",
    "dep:dashmap",
    "dep:ahash",
    "dep:rcgen",
    "dep:reloadable-state",
    "dep:rustls-cert-file-reader",
    "dep:rustls-cert-reloadable-resolver",
    "dep:time",
    "dep:tokio-rustls-acme",
    "dep:tokio-websockets",
    "dep:simdutf8",
    "dep:sha1",
    "dep:toml",
    "dep:serde_json",
    "dep:tracing-subscriber",
    "quinn/platform-verifier",
    "quinn/runtime-tokio",
    "iroh-metrics/service",
]
metrics = ["iroh-metrics/metrics"]
test-utils = []

bin
name = "cyber-radio-relay"
path = "src/main.rs"
required-features = ["server"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "iroh_docsrs"]

Homonyms

cyb/Cargo.toml
neural/rs/Cargo.toml
warriors/erga/Cargo.toml
soft3/tru/Cargo.toml
soft3/mudra/Cargo.toml
warriors/trisha/Cargo.toml
cyb/evy/Cargo.toml
cyb/wysm/Cargo.toml
soft3/zheng/Cargo.toml
cyb/shell/Cargo.toml
soft3/hemera/Cargo.toml
cyb/core/Cargo.toml
soft3/glia/Cargo.toml
cyb/optica/Cargo.toml
soft3/cybergraph/Cargo.toml
soft3/strata/Cargo.toml
neural/rune/Cargo.toml
cyb/honeycrisp/Cargo.toml
cyb/prysm/Cargo.toml
cyberia/cyberia-my/Cargo.toml
soft3/foculus/Cargo.toml
neural/trident/Cargo.toml
soft3/radio/Cargo.toml
cyb/apps/Cargo.toml
soft3/crate/Cargo.toml
cyb/cli/Cargo.toml
soft3/lens/Cargo.toml
soft3/mir/Cargo.toml
soft3/nox/Cargo.toml
neural/eidos/Cargo.toml
soft3/lens/core/Cargo.toml
warriors/trisha/honeycrisp/Cargo.toml
soft3/radio/iroh-car/Cargo.toml
soft3/hemera/cli/Cargo.toml
neural/rune/cli/Cargo.toml
soft3/strata/src/Cargo.toml
cyb/wysm/fuzz/Cargo.toml
soft3/tru/rs/Cargo.toml
soft3/hemera/bench/Cargo.toml
cyb/crates/cyb-reserve/Cargo.toml
neural/rs/cli/Cargo.toml
cyb/honeycrisp/aruminium/Cargo.toml
soft3/strata/proof/Cargo.toml
soft3/nox/cli/Cargo.toml
warriors/trisha/wgpu/Cargo.toml
soft3/soma/kernel/Cargo.toml
cyb/honeycrisp/unimem/Cargo.toml
neural/inf/rs/Cargo.toml
soft3/radio/nettools/Cargo.toml
cyb/honeycrisp/acpu/Cargo.toml
soft3/radio/iroh/Cargo.toml
soft3/tru/cli/Cargo.toml
soft3/lens/src/Cargo.toml
neural/rs/link/Cargo.toml
neural/rs/dialect/Cargo.toml
soft3/lens/porphyry/Cargo.toml
soft3/lens/brakedown/Cargo.toml
soft3/cybergraph/cli/Cargo.toml
soft3/radio/iroh-dns-server/Cargo.toml
soft3/glia/import/Cargo.toml
soft3/lens/binius/Cargo.toml
soft3/bbg/rs/Cargo.toml
neural/rs/mir-format/Cargo.toml
cyberia/research/cyberia-my/Cargo.toml
soft3/lens/cli/Cargo.toml
soft3/lytics/rs/Cargo.toml
neural/eidos/rs/Cargo.toml
soft3/strata/cli/Cargo.toml
neural/rs/pure-rust-check/Cargo.toml
neural/rs/rsc/Cargo.toml
neural/rs/core/Cargo.toml
soft3/glia/cli/Cargo.toml
soft3/radio/iroh-base/Cargo.toml
soft3/radio/particle/Cargo.toml
neural/rs/darwin-sys/Cargo.toml
cyb/honeycrisp/rane/Cargo.toml
soft3/glia/run/Cargo.toml
soft3/tok/rs/Cargo.toml
soft3/radio/iroh-ffi/Cargo.toml
cyb/crates/cyb/Cargo.toml
soft3/zheng/rs/Cargo.toml
soft3/radio/iroh-gossip/Cargo.toml
soft3/hemera/rs/Cargo.toml
soft3/radio/iroh-willow/Cargo.toml
cyb/prysm/cli/Cargo.toml
soft3/radio/radio-cli/Cargo.toml
soft3/lens/ikat/Cargo.toml
soft3/lens/assayer/Cargo.toml
soft3/nox/rs/Cargo.toml
soft3/radio/quinn/Cargo.toml
soft3/conformance/rs/Cargo.toml
soft3/strata/core/Cargo.toml
soft3/radio/iroh-blobs/Cargo.toml
soft3/radio/iroh-docs/Cargo.toml
warriors/trisha/cli/Cargo.toml
soft3/bbg/cli/Cargo.toml
neural/rs/codegen/Cargo.toml
warriors/trisha/rs/Cargo.toml
soft3/hemera/wgsl/Cargo.toml
neural/rs/macros/Cargo.toml
soft3/zheng/cli/Cargo.toml
warriors/erga/cli/Cargo.toml
soft3/radio/cyber-bao/Cargo.toml
soft3/strata/ext/Cargo.toml
neural/rs/sigil/Cargo.toml
neural/eidos/cli/Cargo.toml
soft3/strata/compute/Cargo.toml
neural/rs/macho-linker/Cargo.toml
soft3/radio/iroh/bench/Cargo.toml
soft3/strata/genies/rs/Cargo.toml
cyb/honeycrisp/aruminium/benches/Cargo.toml
cyb/wysm/crates/collections/Cargo.toml
neural/inf/rs/lex/Cargo.toml
warriors/erga/rs/miner/Cargo.toml
cyb/wysm/crates/fuzz/Cargo.toml
warriors/erga/rs/mine-bench/Cargo.toml
soft3/strata/trop/wgsl/Cargo.toml
soft3/strata/kuro/cli/Cargo.toml
soft3/strata/jali/cli/Cargo.toml
cyb/wysm/crates/ir/Cargo.toml
soft3/strata/jali/wgsl/Cargo.toml
neural/inf/rs/source/Cargo.toml
cyb/wysm/crates/wasi/Cargo.toml
neural/inf/rs/oracle/Cargo.toml
warriors/erga/rs/autolykos/Cargo.toml
cyb/evy/forks/naga/Cargo.toml
soft3/tape/impl/rust/Cargo.toml
soft3/strata/nebu/cli/Cargo.toml
soft3/radio/quinn/fuzz/Cargo.toml
soft3/radio/tests/integration/Cargo.toml
soft3/radio/nettools/netwatch/Cargo.toml
soft3/strata/genies/cli/Cargo.toml
soft3/radio/quinn/quinn-proto/Cargo.toml
neural/inf/rs/ast/Cargo.toml
cyb/evy/forks/bevy_image/Cargo.toml
cyb/evy/forks/bevy_pbr/Cargo.toml
neural/trident/editor/zed/Cargo.toml
neural/rune/rs/lex/Cargo.toml
neural/rune/rs/compile/Cargo.toml
warriors/trisha/.vendor/triton-constraint-builder/Cargo.toml
warriors/erga/rs/pool/Cargo.toml
cyb/evy/forks/bevy_tasks/Cargo.toml
soft3/strata/kuro/rs/Cargo.toml
cyb/wysm/crates/wast/Cargo.toml
soft3/radio/iroh-ffi/iroh-js/Cargo.toml
neural/inf/rs/cli/Cargo.toml
cyb/evy/forks/bevy_diagnostic/Cargo.toml
neural/rs/tests/macro-integration/Cargo.toml
cyb/evy/crates/evy_diagnostic/Cargo.toml
soft3/strata/genies/wgsl/Cargo.toml
soft3/strata/nebu/wgsl/Cargo.toml
cyb/evy/forks/bevy_animation/Cargo.toml
neural/rune/rs/ast/Cargo.toml
soft3/radio/nettools/portmapper/Cargo.toml
cyb/wysm/crates/core/Cargo.toml
cyb/evy/crates/evy_engine_dispatch/Cargo.toml
soft3/lytics/rs/event/Cargo.toml
neural/rune/rs/interp/Cargo.toml
soft3/strata/nebu/rs/Cargo.toml
warriors/erga/rs/rtable-bench/Cargo.toml
soft3/lytics/rs/agent/Cargo.toml
warriors/erga/rs/app/Cargo.toml
cyb/evy/forks/bevy_core_pipeline/Cargo.toml
cyb/evy/forks/bevy_anti_alias/Cargo.toml
cyb/evy/crates/evy_dialect/Cargo.toml
neural/rune/rs/prysm/Cargo.toml
cyb/evy/forks/bevy_mesh/Cargo.toml
soft3/lytics/rs/core/Cargo.toml
cyb/evy/forks/bevy_sprite/Cargo.toml
soft3/strata/trop/cli/Cargo.toml
neural/inf/rs/eval/Cargo.toml
warriors/trisha/.vendor/triton-constraint-circuit/Cargo.toml
soft3/radio/quinn/perf/Cargo.toml
neural/rune/rs/lower/Cargo.toml
warriors/trisha/.vendor/triton-air/Cargo.toml
cyb/evy/crates/evy_prysm_core/Cargo.toml
cyb/evy/crates/evy_engine_core/Cargo.toml
warriors/trisha/.vendor/twenty-first/Cargo.toml
soft3/radio/quinn/quinn/Cargo.toml
neural/rune/rs/subject/Cargo.toml
cyb/evy/crates/evy_platform_caps/Cargo.toml
cyb/evy/crates/evy_ecs_storage/Cargo.toml
warriors/trisha/.vendor/triton-vm/Cargo.toml
warriors/erga/rs/blake-bench/Cargo.toml
cyb/evy/forks/bevy_transform/Cargo.toml
cyb/wysm/crates/cli/Cargo.toml
soft3/strata/jali/rs/Cargo.toml
neural/rune/rs/parse/Cargo.toml
neural/rune/rs/mold/Cargo.toml
soft3/radio/quinn/quinn-udp/Cargo.toml
cyb/wysm/crates/c_api/Cargo.toml
soft3/radio/quinn/bench/Cargo.toml
neural/inf/rs/plan/Cargo.toml
soft3/strata/trop/rs/Cargo.toml
cyb/evy/forks/bevy_post_process/Cargo.toml
soft3/lytics/rs/ingest/Cargo.toml
cyb/evy/crates/evy_engine_tasks/Cargo.toml
soft3/strata/kuro/wgsl/Cargo.toml
cyb/wysm/crates/wasmi/Cargo.toml
cyb/evy/forks/bevy_render/Cargo.toml
cyb/honeycrisp/rane/benches/Cargo.toml
neural/inf/rs/value/Cargo.toml
cyb/evy/crates/evy_radio/Cargo.toml
cyb/evy/forks/bevy_sprite_render/Cargo.toml
cyb/evy/forks/bevy_ecs/Cargo.toml
neural/rune/rs/parse-pure/Cargo.toml
neural/inf/rs/cozo/Cargo.toml
warriors/trisha/.vendor/triton-isa/Cargo.toml
neural/inf/rs/parse/Cargo.toml
cyb/evy/forks/bevy_gizmos_render/Cargo.toml
warriors/erga/rs/wallet/Cargo.toml
neural/inf/rs/lower/Cargo.toml
cyb/evy/forks/bevy_gizmos/Cargo.toml
neural/inf/rs/cozo/cozo-bin/Cargo.toml
neural/inf/rs/cozo/cozo-core/Cargo.toml
cyb/wysm/crates/c_api/macro/Cargo.toml
cyb/honeycrisp/unimem/experiments/iosurface_probe/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/Cargo.toml
neural/inf/rs/cozo/cozo-lib-c/Cargo.toml
neural/inf/rs/cozo/cozo-lib-java/Cargo.toml
soft3/radio/quinn/docs/book/Cargo.toml
cyb/honeycrisp/unimem/experiments/hyp_probe/Cargo.toml
neural/inf/rs/cozo/cozo-lib-nodejs/Cargo.toml
cyb/wysm/crates/c_api/artifact/Cargo.toml
neural/inf/rs/cozo/cozorocks/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/Cargo.toml
neural/inf/rs/cozo/cozo-lib-wasm/Cargo.toml
neural/inf/rs/cozo/cozo-lib-swift/Cargo.toml
neural/inf/rs/cozo/cozo-lib-python/Cargo.toml
neural/inf/rs/cozo/cozo-core-examples/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/rane/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/unimem/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/unimem/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/acpu/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/aruminium/Cargo.toml
cyb/honeycrisp/unimem/experiments/dext_contiguous_alloc/client/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/rane/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/acpu/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/aruminium/Cargo.toml
cyb/honeycrisp/unimem/experiments/dext_iosurface_pa/client/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/rane/benches/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/rane/benches/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/aruminium/benches/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/aruminium/benches/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/unimem/experiments/hyp_probe/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/unimem/experiments/iosurface_probe/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/unimem/experiments/iosurface_probe/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/unimem/experiments/hyp_probe/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/unimem/experiments/dext_iosurface_pa/client/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/unimem/experiments/dext_iosurface_pa/client/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-aa1259cb10112b22a/unimem/experiments/dext_contiguous_alloc/client/Cargo.toml
cyb/honeycrisp/.claude/worktrees/agent-ad6c77c38e86bc291/unimem/experiments/dext_contiguous_alloc/client/Cargo.toml

Graph