[package]
name = "bitcache-core"
version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
description.workspace = true
readme.workspace = true
homepage.workspace = true
repository.workspace = true
license.workspace = true
keywords.workspace = true
categories.workspace = true
publish.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = ["all", "std"]
all = ["base58", "tokio"]
alloc = ["serde?/alloc", "futures-util/alloc"]
std = ["alloc", "blake3/std", "derive_more/std", "futures-io/std", "futures-util/std", "futures-util/io"]
unstable = []
base58 = ["dep:bs58"]
tokio = ["std", "dep:tokio", "tokio/fs", "tokio/io-util"]
cap-std = ["dep:cap-std"]
clap = ["dep:clap"]
clientele = ["dep:clientele"]
config = ["std", "serde", "serde/std", "dep:toml"]
fred = ["dep:fred"]
iroh = ["dep:iroh"]
opendal = ["dep:opendal"]
serde = ["dep:serde", "alloc", "blake3/serde"]
[dependencies]
arrayvec = { version = "0.7", default-features = false }
blake3 = { version = "1.8", default-features = false }
bytes = { version = "1", default-features = false }
derive_more = { version = "2", default-features = false, features = ["display", "from_str"] }
dynosaur = { version = "0.3", default-features = false }
futures-core = { version = "0.3", default-features = false }
futures-io = { version = "0.3", default-features = false }
futures-util = { version = "0.3", default-features = false }
thiserror = { workspace = true }
tokio = { workspace = true, optional = true }
bs58 = { version = "0.5", default-features = false, optional = true }
cap-std = { workspace = true, optional = true }
clap = { workspace = true, optional = true }
clientele = { workspace = true, optional = true }
fred = { workspace = true, optional = true }
iroh = { workspace = true, optional = true }
opendal = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
toml = { version = "0.8", default-features = false, features = ["parse", "display"], optional = true }