[package]
name = "arbiter-storage"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Storage abstraction layer for Arbiter: async traits with pluggable backends"

[features]
default = []
sqlite = ["sqlx"]

[dependencies]
async-trait = "0.1"
chrono = { version = "0.4", features = ["serde"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
tokio = { version = "1", features = ["sync", "time", "rt"] }
tracing = "0.1"
uuid = { version = "1", features = ["v4", "serde"] }

# Field-level encryption at rest (AES-256-GCM)
aes-gcm = "0.10"
base64 = "0.22"
rand = "0.8"

# SQLite backend (behind feature flag)
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "chrono", "uuid"], optional = true }

[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util"] }
tempfile = "3"
