[package]
edition = "2024"
name = "distributed-topic-tracker"
version = "0.2.7"
authors = ["Zacharias Boehler <rustonbsd@mailfence.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "automagically find peers interested in a topic + iroh-gossip integration"
homepage = "https://rustonbsd.github.io/2025/09/03/distributed-topic-tracker.html"
readme = "README.md"
keywords = ["networking"]
categories = ["network-programming"]
license = "MIT"
repository = "https://github.com/rustonbsd/distributed-topic-tracker"
[features]
default = ["iroh-gossip"]
iroh-gossip = [
"dep:iroh",
"dep:iroh-gossip",
]
[lib]
name = "distributed_topic_tracker"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[example]]
name = "chat"
path = "examples/chat.rs"
required-features = ["iroh-gossip"]
[[example]]
name = "chat_no_wait"
path = "examples/chat_no_wait.rs"
required-features = ["iroh-gossip"]
[[example]]
name = "custom_relay_discovery"
path = "examples/custom_relay_discovery.rs"
[[example]]
name = "e2e_test"
path = "examples/e2e_test.rs"
required-features = ["iroh-gossip"]
[[example]]
name = "secret_rotation"
path = "examples/secret_rotation.rs"
required-features = ["iroh-gossip"]
[[example]]
name = "simple"
path = "examples/simple.rs"
required-features = ["iroh-gossip"]
[[test]]
name = "test_gossip"
path = "tests/test_gossip.rs"
required-features = ["iroh-gossip"]
[[test]]
name = "tests"
path = "tests/tests.rs"
[dependencies.actor-helper]
version = "0.2"
features = [
"tokio",
"anyhow",
]
[dependencies.anyhow]
version = "1"
features = ["std"]
default-features = false
[dependencies.chrono]
version = "0.4"
features = ["clock"]
default-features = false
[dependencies.ed25519-dalek]
version = "3.0.0-pre.1"
features = ["rand_core"]
default-features = false
[dependencies.ed25519-dalek-hpke]
version = "0.0.5"
[dependencies.futures-lite]
version = "2"
[dependencies.iroh]
version = "0.96"
optional = true
default-features = false
[dependencies.iroh-gossip]
version = "0.96"
features = ["net"]
optional = true
default-features = false
[dependencies.mainline]
version = "6"
features = ["async"]
default-features = false
[dependencies.postcard]
version = "1"
[dependencies.rand]
version = "0.9"
features = [
"std",
"std_rng",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["std"]
default-features = false
[dependencies.sha2]
version = "0.10"
default-features = false
[dependencies.tokio]
version = "1"
features = [
"macros",
"time",
"sync",
"rt-multi-thread",
]
default-features = false
[dependencies.tracing]
version = "0.1"
features = ["std"]
default-features = false
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"std",
"env-filter",
"ansi",
]
default-features = false