172 lines
4.4 KiB
TOML
172 lines
4.4 KiB
TOML
[package]
|
|
name = "iroh-gossip"
|
|
version = "0.96.0"
|
|
edition = "2021"
|
|
readme = "README.md"
|
|
description = "gossip messages over broadcast trees"
|
|
license = "MIT/Apache-2.0"
|
|
authors = ["n0 team"]
|
|
repository = "https://github.com/n0-computer/iroh-gossip"
|
|
resolver = "2"
|
|
|
|
# Sadly this also needs to be updated in .github/workflows/ci.yml
|
|
rust-version = "1.89"
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[lints.rust]
|
|
missing_debug_implementations = "warn"
|
|
|
|
# We use this --cfg for documenting the cargo features on which an API
|
|
# is available. To preview this locally use: RUSTFLAGS="--cfg
|
|
# iroh_docsrs cargo +nightly doc --all-features". We use our own
|
|
# iroh_docsrs instead of the common docsrs to avoid also enabling this
|
|
# feature in any dependencies, because some indirect dependencies
|
|
# require a feature enabled when using `--cfg docsrs` which we can not
|
|
# do. To enable for a crate set `#![cfg_attr(iroh_docsrs,
|
|
# feature(doc_cfg))]` in the crate.
|
|
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(iroh_docsrs)"] }
|
|
|
|
[lints.clippy]
|
|
unused-async = "warn"
|
|
|
|
[dependencies]
|
|
blake3 = "1.8"
|
|
bytes = { version = "1.7", features = ["serde"] }
|
|
data-encoding = "2.6.0"
|
|
derive_more = { version = "2.0.1", features = [
|
|
"add",
|
|
"debug",
|
|
"deref",
|
|
"display",
|
|
"from",
|
|
"try_into",
|
|
"into",
|
|
] }
|
|
ed25519-dalek = { version = "3.0.0-pre.1", features = ["serde", "rand_core"] }
|
|
hex = "0.4.3"
|
|
indexmap = "2.0"
|
|
iroh-metrics = { version = "0.38", default-features = false }
|
|
iroh-base = { version = "0.96", default-features = false, features = ["key"] }
|
|
n0-future = "0.3"
|
|
postcard = { version = "1", default-features = false, features = [
|
|
"alloc",
|
|
"use-std",
|
|
"experimental-derive",
|
|
] }
|
|
rand = { version = "0.9.2", features = ["std_rng"] }
|
|
serde = { version = "1.0.164", features = ["derive"] }
|
|
|
|
# net dependencies (optional)
|
|
futures-lite = { version = "2.3", optional = true }
|
|
futures-concurrency = { version = "7.6.1", optional = true }
|
|
futures-util = { version = "0.3.30", optional = true }
|
|
iroh = { version = "0.96", default-features = false, optional = true }
|
|
tokio = { version = "1", optional = true, features = ["io-util", "sync"] }
|
|
tokio-util = { version = "0.7.12", optional = true, features = ["codec"] }
|
|
tracing = "0.1"
|
|
irpc = { version = "0.12.0", optional = true, default-features = false, features = [
|
|
"derive",
|
|
"stream",
|
|
"spans",
|
|
] }
|
|
n0-error = { version = "0.1", features = ["anyhow"] }
|
|
|
|
# rpc dependencies (optional)
|
|
quinn = { package = "iroh-quinn", version = "0.16.0", optional = true }
|
|
|
|
# test-utils dependencies (optional)
|
|
rand_chacha = { version = "0.9", optional = true }
|
|
humantime-serde = { version = "1.1.1", optional = true }
|
|
|
|
# simulator dependencies (optional)
|
|
clap = { version = "4", features = ["derive"], optional = true }
|
|
toml = { version = "0.9.8", optional = true }
|
|
tracing-subscriber = { version = "0.3", features = [
|
|
"env-filter",
|
|
], optional = true }
|
|
serde_json = { version = "1", optional = true }
|
|
rayon = { version = "1.10.0", optional = true }
|
|
comfy-table = { version = "7.1.4", optional = true }
|
|
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1", features = [
|
|
"io-util",
|
|
"sync",
|
|
"rt",
|
|
"macros",
|
|
"net",
|
|
"fs",
|
|
] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
humantime-serde = { version = "1.1.1" }
|
|
iroh = { version = "0.96", default-features = false, features = [
|
|
"metrics",
|
|
"test-utils",
|
|
] }
|
|
rand_chacha = "0.9"
|
|
testresult = "0.4.1"
|
|
tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }
|
|
n0-tracing-test = "0.3"
|
|
url = "2.4.0"
|
|
serde-byte-array = "0.1.2"
|
|
|
|
[features]
|
|
default = ["net", "metrics"]
|
|
net = [
|
|
"dep:irpc",
|
|
"dep:futures-lite",
|
|
"dep:iroh",
|
|
"dep:tokio",
|
|
"dep:tokio-util",
|
|
"dep:futures-util",
|
|
"dep:futures-concurrency",
|
|
]
|
|
rpc = [
|
|
"dep:irpc",
|
|
"dep:tokio",
|
|
"dep:quinn",
|
|
"irpc/rpc",
|
|
"irpc/quinn_endpoint_setup",
|
|
]
|
|
test-utils = ["dep:rand_chacha", "dep:humantime-serde"]
|
|
simulator = [
|
|
"test-utils",
|
|
"dep:tracing-subscriber",
|
|
"dep:toml",
|
|
"dep:clap",
|
|
"dep:serde_json",
|
|
"dep:rayon",
|
|
"dep:comfy-table",
|
|
]
|
|
metrics = ["iroh-metrics/metrics"]
|
|
examples = ["net"]
|
|
|
|
[[test]]
|
|
name = "sim"
|
|
path = "tests/sim.rs"
|
|
required-features = ["test-utils"]
|
|
|
|
[[bin]]
|
|
name = "sim"
|
|
required-features = ["simulator"]
|
|
|
|
[[example]]
|
|
name = "chat"
|
|
required-features = ["examples"]
|
|
|
|
[[example]]
|
|
name = "setup"
|
|
required-features = ["examples"]
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
rustdoc-args = ["--cfg", "iroh_docsrs"]
|
|
|
|
[profile.bench]
|
|
debug = true
|
|
|
|
[profile.release]
|
|
debug = true
|