[package]
name = "kei-store"
version = "0.1.0"
edition.workspace = true
rust-version.workspace = true
description = "Memory-repo backend abstraction — GitHub/Forgejo/Gitea/Filesystem/S3 (v0.21.0)"
authors.workspace = true
license.workspace = true

[[bin]]
name = "kei-store"
path = "src/main.rs"

[lib]
path = "src/lib.rs"

[features]
# Default: no cloud deps. S3 backend behaves as the v0.14 local-manifest stub
# (gated by KEI_STORE_ALLOW_S3_STUB=1). Users who actually need real S3 / R2 /
# MinIO push opt into the heavier AWS SDK stack by enabling this feature.
default = []
s3 = ["dep:aws-config", "dep:aws-sdk-s3", "dep:aws-credential-types", "dep:tokio", "dep:async-trait"]

[dependencies]
clap = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
anyhow = { workspace = true }
toml = { workspace = true }
git2 = { version = "0.19", default-features = false }

# v0.21 — optional cloud stack behind `s3` feature.
aws-config = { version = "1", default-features = false, features = ["behavior-version-latest", "rustls", "rt-tokio"], optional = true }
aws-sdk-s3 = { version = "1", default-features = false, features = ["behavior-version-latest", "rustls", "rt-tokio"], optional = true }
aws-credential-types = { version = "1", optional = true }
tokio = { workspace = true, optional = true }
async-trait = { workspace = true, optional = true }

[dev-dependencies]
tempfile = { workspace = true }
