[package]
name = "burn_p2p_bootstrap"
description = "Bootstrap and admin composition boundary crate for burn_p2p."
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "../../README.md"

[features]
default = []
admin-http = []
metrics = []
metrics-indexer = ["metrics", "dep:burn_p2p_metrics"]
artifact-publish = ["dep:burn_p2p_publish"]
artifact-download = ["artifact-publish"]
artifact-fs = ["artifact-publish", "burn_p2p_publish/fs"]
artifact-s3 = ["artifact-publish", "burn_p2p_publish/s3", "dep:reqwest"]
browser-edge = ["dep:burn_p2p_app", "burn_p2p_app/interactive"]
browser-join = ["browser-edge", "burn_p2p_app/browser-join"]
rbac = []
auth-static = []
auth-github = ["dep:burn_p2p_auth_github"]
auth-oidc = ["dep:burn_p2p_auth_oidc"]
auth-oauth = ["dep:burn_p2p_auth_oauth"]
auth-external = ["dep:burn_p2p_auth_external"]
social = ["dep:burn_p2p_social"]

[dependencies]
anyhow.workspace = true
burn_p2p.workspace = true
burn_p2p_auth_external = { workspace = true, optional = true }
burn_p2p_auth_github = { workspace = true, optional = true }
burn_p2p_auth_oidc = { workspace = true, optional = true }
burn_p2p_auth_oauth = { workspace = true, optional = true }
burn_p2p_app = { workspace = true, optional = true, default-features = false }
burn_p2p_core.workspace = true
burn_p2p_experiment.workspace = true
burn_p2p_metrics = { workspace = true, optional = true }
burn_p2p_publish = { version = "=0.21.0-pre.8", path = "../burn_p2p_publish", optional = true, default-features = false }
burn_p2p_security.workspace = true
burn_p2p_social = { workspace = true, optional = true, default-features = false, features = ["profiles", "leaderboards", "badges"] }
burn_p2p_swarm.workspace = true
burn_p2p_views.workspace = true
chrono.workspace = true
fs2 = "0.4"
hex.workspace = true
libp2p-identity = "0.2.13"
semver.workspace = true
serde.workspace = true
serde_json.workspace = true
sha2 = "0.10"
thiserror.workspace = true
reqwest = { version = "0.12", default-features = false, features = ["blocking"], optional = true }
redis = "0.27"
url = "2"

[dev-dependencies]
burn_p2p_browser.workspace = true
burn_p2p_checkpoint.workspace = true
reqwest = { version = "0.12", default-features = false, features = ["json"] }
tempfile.workspace = true
tokio = { version = "1", features = ["net", "rt", "time"] }

[[bin]]
name = "burn-p2p-bootstrap"
path = "src/bootstrap/main.rs"

[lints]
workspace = true
