[package]
edition = "2024"
rust-version = "1.88.0"
name = "foca"
version = "2.0.0"
authors = ["Caio <contact@caio.co>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Gossip-based cluster membership discovery, based on SWIM"
homepage = "https://caio.co/de/foca/"
documentation = "https://docs.rs/foca"
readme = "README.md"
keywords = [
"swim",
"gossip",
"service-discovery",
"memberlist",
]
categories = [
"network-programming",
"no-std",
]
license = "MPL-2.0"
repository = "https://caio.co/de/foca/"
[package.metadata.docs.rs]
all-features = true
[features]
default = []
postcard-codec = [
"serde",
"postcard",
]
std = []
unstable-notifications = []
[lib]
name = "foca"
path = "src/lib.rs"
[[example]]
name = "bootstrap_with_wellknown"
path = "examples/bootstrap_with_wellknown.rs"
required-features = ["postcard-codec"]
[[example]]
name = "foca_insecure_udp_agent"
path = "examples/foca_insecure_udp_agent.rs"
required-features = [
"tracing",
"postcard-codec",
]
[[example]]
name = "identity_golf"
path = "examples/identity_golf.rs"
required-features = ["std"]
[dependencies.bytes]
version = "1"
default-features = false
[dependencies.postcard]
version = "1"
optional = true
default-features = false
[dependencies.rand]
version = "0.10"
default-features = false
[dependencies.serde]
version = "1"
features = [
"derive",
"alloc",
]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
features = ["attributes"]
optional = true
default-features = false
[dev-dependencies.clap]
version = "2"
default-features = false
[dev-dependencies.rand]
version = "0.10"
features = ["std_rng"]
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"sync",
"time",
"net",
]
default-features = false
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dev-dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]