[package]
name = "recoco-utils"
version = { workspace = true }
edition = { workspace = true }
rust-version = { workspace = true }
description = "Common utilities for ReCoco, an all-Rust fork of CocoIndex with greater flexibility."
readme = "README.md"
repository = { workspace = true }
license = { workspace = true }
[dependencies]
anyhow = { workspace = true }
async-openai = { workspace = true, optional = true }
async-trait = { workspace = true }
axum = { workspace = true, optional = true }
azure_storage = { workspace = true, optional = true }
base64 = { workspace = true, optional = true }
blake3 = { workspace = true, optional = true }
cfg-if = { workspace = true }
chrono = { workspace = true, optional = true }
encoding_rs = { workspace = true, optional = true }
futures = { workspace = true, optional = true }
globset = { workspace = true, optional = true }
google-drive3 = { workspace = true, optional = true }
hex = { workspace = true, optional = true }
http = { workspace = true, optional = true }
neo4rs = { workspace = true, optional = true }
qdrant-client = { workspace = true, optional = true }
rand = { workspace = true, optional = true }
redis = { workspace = true, optional = true }
regex = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
serde_path_to_error = { workspace = true, optional = true }
sqlx = { workspace = true, optional = true }
time = { workspace = true, optional = true }
tokio = { workspace = true, optional = true }
tokio-util = { workspace = true, optional = true }
tracing = { workspace = true }
uuid = { workspace = true, optional = true }
yaml-rust2 = { workspace = true, optional = true }
[dev-dependencies]
http = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_path_to_error = { workspace = true }
[features]
default = []
azure = ["dep:azure_storage", "dep:globset"]
batching = [
"concur_control",
"dep:serde",
"dep:tokio",
"dep:tokio-util",
"fingerprint",
"http",
"retryable"
]
bytes_decode = ["dep:encoding_rs"]
chrono = ["dep:chrono"]
concur_control = ["dep:tokio"]
deserialize = ["dep:serde", "dep:serde_json", "dep:serde_path_to_error"]
fingerprint = [
"dep:base64",
"dep:blake3",
"dep:hex",
"dep:serde",
"deserialize"
]
google-drive = ["dep:globset", "dep:google-drive3"]
http = ["dep:http", "reqwest", "retryable"]
immutable = []
local-file = ["dep:globset"]
neo4rs = ["dep:neo4rs"]
openai = ["dep:async-openai", "reqwest"]
qdrant = ["dep:qdrant-client"]
redis = ["dep:redis"]
regex = ["dep:regex"]
reqwest = ["dep:reqwest", "http"]
retryable = ["dep:rand", "dep:time", "dep:tokio"]
s3 = ["dep:globset"]
server = ["dep:axum", "http"]
sqlx = ["dep:sqlx"]
str_sanitize = ["dep:serde", "dep:sqlx"]
uuid = ["dep:uuid"]
yaml = ["dep:base64", "dep:serde", "dep:yaml-rust2"]