[package]
name        = "cuprate-blockchain"
version     = "0.0.0"
edition     = "2021"
description = "Cuprate's blockchain database"
license     = "MIT"
authors     = ["hinto-janai"]
repository  = "https://github.com/Cuprate/cuprate/tree/main/storage/cuprate-blockchain"
keywords    = ["cuprate", "blockchain", "database"]

[features]
default     = ["heed"]
# default     = ["redb", "service"]
# default     = ["redb-memory", "service"]
heed        = ["cuprate-database/heed"]
redb        = ["cuprate-database/redb"]
redb-memory = ["cuprate-database/redb-memory"]
serde       = ["dep:serde", "cuprate-database/serde", "cuprate-database-service/serde", "cuprate-helper/serde"]

[dependencies]
cuprate-database         = { workspace = true }
cuprate-database-service = { workspace = true }
cuprate-helper           = { workspace = true, features = ["fs", "map", "crypto", "tx", "thread"] }
cuprate-types            = { workspace = true, features = ["blockchain"] }
cuprate-pruning          = { workspace = true }

bitflags         = { workspace = true, features = ["std", "serde", "bytemuck"] }
bytemuck         = { workspace = true, features = ["must_cast", "derive", "min_const_generics", "extern_crate_alloc"] }
curve25519-dalek = { workspace = true }
rand             = { workspace = true, features = ["std", "std_rng"] }
monero-serai     = { workspace = true, features = ["std"] }
serde            = { workspace = true, optional = true }

tower        = { workspace = true }
thread_local = { workspace = true }
rayon        = { workspace = true }
bytes        = { workspace = true }

[dev-dependencies]
cuprate-constants  = { workspace = true }
cuprate-helper     = { workspace = true, features = ["thread", "cast"] }
cuprate-test-utils = { workspace = true }

tokio             = { workspace = true, features = ["full"] }
tempfile          = { workspace = true }
pretty_assertions = { workspace = true }
proptest          = { workspace = true }
hex               = { workspace = true }
hex-literal       = { workspace = true }

[lints]
workspace = true