terraphim_persistence 1.5.2

Terraphim persistence layer
Documentation
[package]
name = "terraphim_persistence"
version = "1.5.2"
edition = "2021"
authors = ["Terraphim Contributors"]
description = "Terraphim persistence layer"
documentation = "https://terraphim.ai"
homepage = "https://terraphim.ai"
repository = "https://github.com/terraphim/terraphim-ai"
keywords = ["personal-assistant", "ai", "privacy", "persistence", "storage"]
license = "Apache-2.0"
readme = "../../README.md"


[dependencies]
terraphim_settings = { path = "../terraphim_settings", version = "1.0.0" }
terraphim_types = { path = "../terraphim_types", version = "1.0.0" }

tracing-subscriber = { version = "0.3", features = [
    "env-filter",
    "tracing-log",
] }
async-once-cell = "0.5.3"
async-trait = "0.1.74"
log = "0.4"
opendal = { version = "0.54", default-features = false, features = [
    "services-memory",  # Always needed
] }
serde = { version = "1.0.182", features = ["derive"] }
serde_json = "1.0.104"
thiserror = "1.0.56"
tokio = { version = "1.27", features = ["fs", "macros", "rt-multi-thread", "sync"] }
regex = "1.11.0"
rusqlite = { version = "0.32", optional = true }
chrono = { version = "0.4", features = ["serde"] }


[dev-dependencies]
tempfile = "3.23.0"
terraphim_config = { path = "../terraphim_config" }
terraphim_multi_agent = { path = "../terraphim_multi_agent" }
temp-env = "0.3.6"
serial_test = "3.3.1"
tokio = { version = "1", features = ["full"] }
test-env-log = "0.2"

[features]
# Default features for TUI and Desktop (NO S3/cloud services)
default = ["sqlite", "dashmap", "memory"]

# Core backends (always available for TUI/Desktop)
memory = []  # Built into OpenDAL core
sqlite = ["opendal/services-sqlite", "rusqlite"]
dashmap = ["opendal/services-dashmap"]

# Optional cloud backends (NOT in default - server only)
s3 = ["opendal/services-s3"]  # Only for server deployments
# atomicserver = ["opendal/services-atomicserver"]  # Removed in opendal 0.54

# Optional local backends
redis = ["opendal/services-redis"]
rocksdb = ["opendal/services-rocksdb"]
redb = ["opendal/services-redb"]
ipfs = ["opendal/services-ipfs"]

# Server profile with cloud support
server = ["s3"]  # Removed atomicserver (not available in opendal 0.54)
all-backends = ["server", "redis", "rocksdb", "redb", "ipfs"]

# Legacy feature names for backwards compatibility
services-dashmap = ["dashmap"]
services-sqlite = ["sqlite"]
# services-atomicserver = ["atomicserver"]  # Removed - atomicserver not available in opendal 0.54
services-s3 = ["s3"]
services-redis = ["redis"]
services-rocksdb = ["rocksdb"]
services-redb = ["redb"]
services-ipfs = ["ipfs"]