iroh-blobs 0.35.0

blob and collection transfer support for iroh
Documentation
[dependencies.anyhow]
version = "1"

[dependencies.async-channel]
version = "2.3.1"

[dependencies.bao-tree]
default-features = false
features = ["tokio_fsm", "validate"]
version = "0.15.1"

[dependencies.blake3]
version = "1.8"

[dependencies.bytes]
features = ["serde"]
version = "1.7"

[dependencies.chrono]
version = "0.4.31"

[dependencies.clap]
features = ["derive"]
optional = true
version = "4.5.20"

[dependencies.console]
optional = true
version = "0.15.8"

[dependencies.data-encoding]
version = "2.3.3"

[dependencies.derive_more]
features = ["debug", "display", "deref", "deref_mut", "from", "try_into", "into"]
version = "1.0.0"

[dependencies.futures-buffered]
version = "0.2.4"

[dependencies.futures-lite]
version = "2.3"

[dependencies.futures-util]
optional = true
version = "0.3.30"

[dependencies.genawaiter]
features = ["futures03"]
version = "0.99.1"

[dependencies.hashlink]
optional = true
version = "0.9.0"

[dependencies.hex]
version = "0.4.3"

[dependencies.indicatif]
optional = true
version = "0.17.8"

[dependencies.iroh]
version = "0.35"

[dependencies.iroh-base]
version = "0.35"

[dependencies.iroh-io]
features = ["stats"]
version = "0.6.0"

[dependencies.iroh-metrics]
default-features = false
version = "0.34"

[dependencies.nested_enum_utils]
optional = true
version = "0.1.0"

[dependencies.num_cpus]
version = "1.15.0"

[dependencies.oneshot]
version = "0.1.8"

[dependencies.parking_lot]
optional = true
version = "0.12.1"

[dependencies.portable-atomic]
optional = true
version = "1"

[dependencies.postcard]
default-features = false
features = ["alloc", "use-std", "experimental-derive"]
version = "1"

[dependencies.quic-rpc]
optional = true
version = "0.20"

[dependencies.quic-rpc-derive]
optional = true
version = "0.20"

[dependencies.rand]
version = "0.8"

[dependencies.range-collections]
version = "0.4.0"

[dependencies.redb]
optional = true
version = "=2.4"

[dependencies.reflink-copy]
optional = true
version = "0.1.8"

[dependencies.self_cell]
version = "1.0.1"

[dependencies.serde]
features = ["derive"]
version = "1"

[dependencies.serde-error]
version = "0.1.3"

[dependencies.smallvec]
features = ["serde", "const_new"]
version = "1.10.0"

[dependencies.ssh-key]
features = ["ed25519"]
optional = true
version = "0.6"

[dependencies.strum]
optional = true
version = "0.26.3"

[dependencies.tempfile]
optional = true
version = "3.10.0"

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
features = ["fs"]
version = "1"

[dependencies.tokio-util]
features = ["io-util", "io"]
version = "0.7"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-futures]
version = "0.2.5"

[dependencies.tracing-test]
version = "0.2.5"

[dependencies.walkdir]
optional = true
version = "2.5.0"

[dev-dependencies.futures-buffered]
version = "0.2.4"

[dev-dependencies.futures-util]
version = "0.3.30"

[dev-dependencies.http-body]
version = "1.0"

[dev-dependencies.iroh]
features = ["test-utils"]
version = "0.35"

[dev-dependencies.proptest]
version = "1.0.0"

[dev-dependencies.quinn]
features = ["ring"]
package = "iroh-quinn"
version = "0.13"

[dev-dependencies.rcgen]
version = "0.13"

[dev-dependencies.rustls]
default-features = false
features = ["ring"]
version = "0.23"

[dev-dependencies.serde_json]
version = "1.0.107"

[dev-dependencies.serde_test]
version = "1.0.176"

[dev-dependencies.tempfile]
version = "3.10.0"

[dev-dependencies.testdir]
version = "0.9.1"

[dev-dependencies.testresult]
version = "0.4.0"

[dev-dependencies.tokio]
features = ["macros", "test-util"]
version = "1"

[dev-dependencies.tracing-subscriber]
features = ["env-filter"]
version = "0.3"

[[example]]
name = "custom-protocol"
path = "examples/custom-protocol.rs"
required-features = ["example-iroh"]

[[example]]
name = "discovery-local-network"
path = "examples/discovery-local-network.rs"
required-features = ["example-iroh"]

[[example]]
name = "fetch-fsm"
path = "examples/fetch-fsm.rs"

[[example]]
name = "fetch-stream"
path = "examples/fetch-stream.rs"

[[example]]
name = "hello-world-fetch"
path = "examples/hello-world-fetch.rs"
required-features = ["example-iroh"]

[[example]]
name = "hello-world-provide"
path = "examples/hello-world-provide.rs"
required-features = ["example-iroh"]

[[example]]
name = "provide-bytes"
path = "examples/provide-bytes.rs"

[[example]]
name = "transfer"
path = "examples/transfer.rs"
required-features = ["rpc"]

[features]
cli = ["rpc", "dep:clap", "dep:indicatif", "dep:console"]
default = ["fs-store", "net_protocol", "rpc"]
downloader = ["dep:parking_lot", "tokio-util/time", "dep:hashlink"]
example-iroh = ["dep:clap", "dep:indicatif", "dep:console", "iroh/discovery-local-network"]
fs-store = ["dep:reflink-copy", "redb", "dep:tempfile"]
metrics = ["iroh-metrics/metrics"]
net_protocol = ["downloader", "dep:futures-util"]
redb = ["dep:redb"]
rpc = ["dep:quic-rpc", "dep:quic-rpc-derive", "dep:nested_enum_utils", "dep:strum", "dep:futures-util", "dep:portable-atomic", "dep:walkdir", "dep:ssh-key", "downloader"]
test = ["quic-rpc/quinn-transport", "quic-rpc/test-utils"]

[lib]
name = "iroh_blobs"
path = "src/lib.rs"

[lints.clippy]
unused-async = "warn"

[lints.rust]
missing_debug_implementations = "warn"

[lints.rust.unexpected_cfgs]
check-cfg = ["cfg(iroh_docsrs)"]
level = "warn"
priority = 0

[package]
authors = ["dignifiedquire <me@dignifiedquire.com>", "n0 team"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
description = "blob and collection transfer support for iroh"
edition = "2021"
keywords = ["hashing", "quic", "blake3"]
license = "MIT OR Apache-2.0"
name = "iroh-blobs"
readme = "README.md"
repository = "https://github.com/n0-computer/iroh-blobs"
rust-version = "1.81"
version = "0.35.0"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "iroh_docsrs"]

[profile.dev-ci]
inherits = "dev"
opt-level = 1

[profile.optimized-release]
debug = 0
debug-assertions = false
incremental = false
inherits = "release"
lto = true
opt-level = 3
panic = "abort"

[[test]]
name = "blobs"
path = "tests/blobs.rs"

[[test]]
name = "gc"
path = "tests/gc.rs"

[[test]]
name = "rpc"
path = "tests/rpc.rs"

[[test]]
name = "tags"
path = "tests/tags.rs"