[package] name = "iroh-blobs" version = "0.28.1" edition = "2021" readme = "README.md" description = "blob and collection transfer support for iroh" license = "MIT OR Apache-2.0" authors = ["dignifiedquire ", "n0 team"] repository = "https://github.com/n0-computer/iroh-blobs" keywords = ["hashing", "quic", "blake3"] # Sadly this also needs to be updated in .github/workflows/ci.yml rust-version = "1.76" [dependencies] anyhow = { version = "1" } async-channel = "2.3.1" bao-tree = { version = "0.13", features = ["tokio_fsm", "validate"], default-features = false } bytes = { version = "1.7", features = ["serde"] } chrono = "0.4.31" derive_more = { version = "1.0.0", features = ["debug", "display", "deref", "deref_mut", "from", "try_into", "into"] } futures-buffered = "0.2.4" futures-lite = "2.3" genawaiter = { version = "0.99.1", features = ["futures03"] } hashlink = { version = "0.9.0", optional = true } hex = "0.4.3" iroh-base = { version = "0.28.0", features = ["redb"] } iroh-io = { version = "0.6.0", features = ["stats"] } iroh-metrics = { version = "0.28.0", default-features = false } iroh-net = { version = "0.28.1" } iroh-router = "0.28.0" num_cpus = "1.15.0" oneshot = "0.1.8" parking_lot = { version = "0.12.1", optional = true } pin-project = "1.1.5" postcard = { version = "1", default-features = false, features = ["alloc", "use-std", "experimental-derive"] } quinn = { package = "iroh-quinn", version = "0.12", features = ["ring"] } rand = "0.8" range-collections = "0.4.0" redb = { version = "2.0.0", optional = true } redb_v1 = { package = "redb", version = "1.5.1", optional = true } reflink-copy = { version = "0.1.8", optional = true } self_cell = "1.0.1" serde = { version = "1", features = ["derive"] } serde-error = "0.1.3" smallvec = { version = "1.10.0", features = ["serde", "const_new"] } tempfile = { version = "3.10.0", optional = true } thiserror = "1" tokio = { version = "1", features = ["fs"] } tokio-util = { version = "0.7", features = ["io-util", "io"] } tracing = "0.1" tracing-futures = "0.2.5" [dev-dependencies] http-body = "0.4.5" iroh-test = { version = "0.28" } futures-buffered = "0.2.4" proptest = "1.0.0" serde_json = "1.0.107" serde_test = "1.0.176" testresult = "0.4.0" tokio = { version = "1", features = ["macros", "test-util"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] } rcgen = "0.12.0" rustls = { version = "0.23", default-features = false, features = ["ring"] } tempfile = "3.10.0" futures-util = "0.3.30" [features] default = ["fs-store"] downloader = ["dep:parking_lot", "tokio-util/time", "dep:hashlink"] fs-store = ["dep:reflink-copy", "redb", "dep:redb_v1", "dep:tempfile"] metrics = ["iroh-metrics/metrics"] redb = ["dep:redb"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "iroh_docsrs"] [[example]] name = "provide-bytes" [[example]] name = "fetch-fsm" [[example]] name = "fetch-stream" [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" [profile.dev-ci] inherits = 'dev' opt-level = 1 [profile.optimized-release] inherits = 'release' debug = false lto = true debug-assertions = false opt-level = 3 panic = 'abort' incremental = false [patch.crates-io] iroh-router = { git = "https://github.com/n0-computer/iroh", branch = "main" } iroh-net = { git = "https://github.com/n0-computer/iroh", branch = "main" } iroh-metrics = { git = "https://github.com/n0-computer/iroh", branch = "main" } iroh-base = { git = "https://github.com/n0-computer/iroh", branch = "main" }