[package]
name = "heddle-objects"
version.workspace = true
edition.workspace = true
authors.workspace = true
description.workspace = true
license.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
anyhow.workspace = true
base32.workspace = true
blake3.workspace = true
bytes.workspace = true
chrono.workspace = true
fs2.workspace = true
hex.workspace = true
ignore.workspace = true
libc = "0.2"
memmap2.workspace = true
rand.workspace = true
rmp-serde.workspace = true
serde.workspace = true
serde_json.workspace = true
similar.workspace = true
thiserror.workspace = true
toml.workspace = true
tracing.workspace = true
uuid.workspace = true
# Win32_Security: CreateFileW's binding is gated on it in windows-sys 0.61
# (its signature takes a *const SECURITY_ATTRIBUTES from Win32::Security).
windows-sys = { workspace = true, features = ["Win32_Foundation", "Win32_Security", "Win32_Storage_FileSystem"] }
zstd = { workspace = true, optional = true }
tokio = { workspace = true, optional = true }

aws-sdk-s3 = { workspace = true, optional = true }
aws-smithy-async = { workspace = true, optional = true }
runtime-bridge = { path = "../runtime-bridge", package = "heddle-runtime-bridge", version = "0.4", optional = true }

[features]
bench = []
s3 = ["dep:aws-sdk-s3", "dep:aws-smithy-async", "dep:tokio", "dep:runtime-bridge"]
memory-backend = []
zstd = ["dep:zstd"]

[dev-dependencies]
criterion = "0.8"
tempfile.workspace = true
tokio.workspace = true
s3s.workspace = true
s3s-fs.workspace = true
hyper-util.workspace = true
proptest.workspace = true

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

[[bench]]
name = "hashing"
harness = false
required-features = ["bench"]

[[bench]]
name = "compression"
harness = false
required-features = ["bench"]

[[bench]]
name = "pack_io"
harness = false
required-features = ["bench"]

[[bench]]
name = "tree_diff"
harness = false
required-features = ["bench"]

[[bench]]
name = "delta"
harness = false
required-features = ["bench"]
