[package]
name = "cocoindex_utils"
version = { workspace = true }
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }

[dependencies]
anyhow = { workspace = true }
async-trait = { workspace = true }
tracing = { workspace = true }
axum = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
base64 = { workspace = true }
tokio = { workspace = true }
tokio-util = { workspace = true }
futures = { workspace = true }
blake2 = { workspace = true }
itertools = { workspace = true }
indexmap = { workspace = true }
hashlink = { workspace = true }
hex = { workspace = true }
serde_path_to_error = { workspace = true }
rmp-serde = { workspace = true }
rand = { workspace = true }

encoding_rs = { version = "0.8.35", optional = true }
reqwest = { version = "0.12.24", optional = true, default-features = false, features = [
    "json",
    "rustls-tls",
] }
async-openai = { version = "0.30.1", optional = true }
neo4rs = { version = "0.8.0", optional = true }
sqlx = { version = "0.8.6", features = [
    "chrono",
    "postgres",
    "runtime-tokio",
    "uuid",
    "tls-rustls-aws-lc-rs",
], optional = true }
yaml-rust2 = { version = "0.10.4", optional = true }

serde_with = { workspace = true, features = ["base64"] }
storekey = { workspace = true }

[features]
default = []
reqwest = ["dep:reqwest"]
openai = ["dep:async-openai", "reqwest"]
neo4rs = ["dep:neo4rs"]
sqlx = ["dep:sqlx"]
yaml = ["dep:yaml-rust2"]
bytes_decode = ["dep:encoding_rs"]
