# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.89"
name = "iroh-blobs"
version = "0.99.0"
authors = [
    "dignifiedquire <me@dignifiedquire.com>",
    "n0 team",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "content-addressed blobs for iroh"
readme = "README.md"
keywords = [
    "hashing",
    "quic",
    "blake3",
    "streaming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/n0-computer/iroh-blobs"

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

[features]
default = [
    "hide-proto-docs",
    "fs-store",
    "rpc",
]
fs-store = [
    "dep:redb",
    "dep:reflink-copy",
    "bao-tree/fs",
]
hide-proto-docs = []
metrics = []
rpc = [
    "dep:noq",
    "irpc/rpc",
    "irpc/noq_endpoint_setup",
]

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

[[example]]
name = "compression"
path = "examples/compression.rs"

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

[[example]]
name = "expiring-tags"
path = "examples/expiring-tags.rs"
required-features = ["fs-store"]

[[example]]
name = "get-blob"
path = "examples/get-blob.rs"

[[example]]
name = "limit"
path = "examples/limit.rs"

[[example]]
name = "mdns-address-lookup"
path = "examples/mdns-address-lookup.rs"

[[example]]
name = "random_store"
path = "examples/random_store.rs"
required-features = ["fs-store"]

[[example]]
name = "transfer"
path = "examples/transfer.rs"

[[example]]
name = "transfer-collection"
path = "examples/transfer-collection.rs"

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

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

[dependencies.arrayvec]
version = "0.7.6"

[dependencies.bao-tree]
version = "0.16"
features = [
    "experimental-mixed",
    "tokio_fsm",
    "validate",
    "serde",
]
default-features = false

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

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

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

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

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

[dependencies.hex]
version = "0.4.3"

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

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

[dependencies.iroh-io]
version = "0.6.1"

[dependencies.iroh-metrics]
version = "0.38"

[dependencies.iroh-tickets]
version = "0.4"

[dependencies.irpc]
version = "0.13.0"
features = [
    "spans",
    "stream",
    "derive",
    "varint-util",
]
default-features = false

[dependencies.n0-error]
version = "0.1.2"

[dependencies.n0-future]
version = "0.3.0"

[dependencies.nested_enum_utils]
version = "0.2.3"

[dependencies.noq]
version = "0.17.0"
optional = true

[dependencies.postcard]
version = "1.1.1"
features = [
    "experimental-derive",
    "use-std",
]

[dependencies.rand]
version = "0.9.2"

[dependencies.range-collections]
version = "0.4.6"
features = ["serde"]

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

[dependencies.ref-cast]
version = "1.0.24"

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

[dependencies.self_cell]
version = "1.1.0"

[dependencies.serde]
version = "1.0.217"

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

[dependencies.tokio]
version = "1.43.0"
features = ["sync"]
default-features = false

[dependencies.tracing]
version = "0.1.41"

[dev-dependencies.anyhow]
version = "1.0.100"

[dev-dependencies.async-compression]
version = "0.4.30"
features = [
    "lz4",
    "tokio",
]

[dev-dependencies.atomic_refcell]
version = "0.1.13"

[dev-dependencies.clap]
version = "4.5.31"
features = ["derive"]

[dev-dependencies.concat_const]
version = "0.2.0"

[dev-dependencies.hex]
version = "0.4.3"

[dev-dependencies.iroh]
version = "0.97"
features = ["address-lookup-mdns"]

[dev-dependencies.iroh-test]
version = "0.31.0"

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

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

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

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

[dev-dependencies.test-strategy]
version = "0.4.0"

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

[dev-dependencies.tracing-subscriber]
version = "0.3.20"
features = ["fmt"]

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

[dev-dependencies.walkdir]
version = "2.5.0"

[build-dependencies.cfg_aliases]
version = "0.2.1"

[target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies.chrono]
version = "0.4.39"
features = [
    "js-sys",
    "wasmbind",
    "std",
]
default-features = false

[target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dependencies.chrono]
version = "0.4.39"

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