[package]
name = "juncture-checkpoint"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
description = "Checkpoint persistence for Juncture state machine executions"
license.workspace = true
repository.workspace = true
readme.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
juncture-core = { version = "0.2.0", path = "../juncture-core" }
juncture-tracing = { version = "0.2.0", path = "../juncture-tracing" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
async-trait = "0.1"
uuid = { version = "1", features = ["v4", "v6"] }
chrono = { version = "0.4", features = ["serde"] }
rmp-serde = "1"
lru = "0.12"
aes-gcm = { version = "0.10", optional = true }
pbkdf2 = { version = "0.12", optional = true }
sha2 = { version = "0.10", optional = true }
tokio = { version = "1", features = ["sync"] }
tracing = "0.1"
sqlx = { version = "0.8", features = ["runtime-tokio", "json"], optional = true }

[features]
encryption = ["aes-gcm", "pbkdf2", "sha2"]
sqlite = ["sqlx/sqlite"]
postgres = ["sqlx/postgres"]
wasm = ["uuid/js"]

[dev-dependencies]
tokio = { version = "1", features = ["full"] }

[lints]
workspace = true
