[package]
name = "synor-storage"
version = "0.1.0"
edition = "2021"
description = "Decentralized storage layer for the Synor blockchain"
license = "MIT"
authors = ["Synor Team"]
repository = "https://github.com/synor/synor"

[dependencies]
# Core
thiserror = "1"
serde = { version = "1", features = ["derive"] }
serde_bytes = "0.11"
serde_json = "1"
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
bytes = "1"
parking_lot = "0.12"

# Cryptography
blake3 = "1"
sha2 = "0.10"
ed25519-dalek = "2"

# Encoding
bs58 = "0.5"
hex = "0.4"
base64 = "0.22"

# Erasure coding
reed-solomon-erasure = "6"

# Storage
rocksdb = { version = "0.22", optional = true }

# Networking (for storage nodes)
libp2p = { version = "0.54", features = ["tcp", "quic", "noise", "yamux", "kad", "identify", "gossipsub"], optional = true }

# Local workspace crates
synor-types = { path = "../synor-types" }
synor-crypto = { path = "../synor-crypto" }

[features]
default = []
node = ["libp2p", "rocksdb"]

[[bin]]
name = "synor-storage-node"
path = "src/bin/storage-node.rs"

[dev-dependencies]
tempfile = "3"
rand = "0.8"
