[package]
name = "iroh-blobs"
version = "0.98.0"
edition = "2021"
description = "content-addressed blobs for iroh"
license = "MIT OR Apache-2.0"
authors = ["dignifiedquire <me@dignifiedquire.com>", "n0 team"]
repository = "https://github.com/n0-computer/iroh-blobs"
keywords = ["hashing", "poseidon2", "streaming"]
# Sadly this also needs to be updated in .github/workflows/ci.yml
rust-version = "1.89"
[lints]
workspace = true
[dependencies]
cyber-bao = { path = "../cyber-bao", features = ["tokio_fsm", "serde"] }
hemera = { package = "cyber-hemera", path = "../../hemera/rs", features = ["serde"] }
bytes = { version = "1", features = ["serde"] }
derive_more = { version = "2.0.1", features = ["from", "try_from", "into", "debug", "display", "deref", "deref_mut"] }
futures-lite = "2.6.0"
quinn = { package = "iroh-quinn", version = "0.16.0", optional = true }
n0-future = "0.3.0"
range-collections = { version = "0.4.6", features = ["serde"] }
smallvec = { version = "1", features = ["serde", "const_new"] }
tokio = { version = "1.43.0", default-features = false, features = ["sync"] }
tracing = "0.1.41"
iroh-io = "0.6.1"
rand = "0.9.2"
hex = "0.4.3"
serde = "1.0.217"
postcard = { version = "1.1.1", features = ["experimental-derive", "use-std"] }
data-encoding = "2.8.0"
ref-cast = "1.0.24"
arrayvec = "0.7.6"
iroh = { path = "../iroh", default-features = false }
self_cell = "1.1.0"
genawaiter = { version = "0.99.1", features = ["futures03"] }
iroh-base = { path = "../iroh-base" }
iroh-tickets = "0.3"
irpc = { version = "0.12.0", features = ["spans", "stream", "derive", "varint-util"], default-features = false }
iroh-metrics = { version = "0.38" }
redb = { version = "2.6.3", optional = true }
reflink-copy = { version = "0.1.24", optional = true }
n0-error = "0.1.2"
nested_enum_utils = "0.2.3"
# non-wasm-in-browser dependencies
[target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dependencies]
chrono = { version = "0.4.39" }
# wasm-in-browser dependencies
[target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies]
chrono = {version = "0.4.39", default-features = false, features = ["js-sys", "wasmbind", "std"] }
[dev-dependencies]
clap = { version = "4.5.31", features = ["derive"] }
hex = "0.4.3"
iroh-test = "0.31.0"
proptest = "1.6.0"
serde_json = "1.0.138"
serde_test = "1.0.177"
tempfile = "3.17.1"
test-strategy = "0.4.0"
testresult = "0.4.1"
tracing-subscriber = { version = "0.3.20", features = ["fmt"] }
tracing-test = "0.2.5"
walkdir = "2.5.0"
atomic_refcell = "0.1.13"
iroh = { path = "../iroh", features = ["address-lookup-mdns"]}
async-compression = { version = "0.4.30", features = ["lz4", "tokio"] }
concat_const = "0.2.0"
anyhow = "1.0.100"
[build-dependencies]
cfg_aliases = "0.2.1"
[features]
hide-proto-docs = []
metrics = []
default = ["hide-proto-docs", "fs-store", "rpc"]
fs-store = ["dep:redb", "dep:reflink-copy"]
rpc = ["dep:quinn", "irpc/rpc", "irpc/quinn_endpoint_setup"]
example
name = "expiring-tags"
required-features = ["fs-store"]
# example
# name = "random_store"
# required-features = ["fs-store"]
# disabled: requires iroh-tickets which has a version conflict with local iroh-base