[package]
edition = "2024"
rust-version = "1.89"
name = "recoco-utils"
version = "0.2.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Common utilities for ReCoco, an all-Rust fork of CocoIndex with greater flexibility."
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/knitli/recoco"
[features]
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"]
default = []
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",
]
[lib]
name = "recoco_utils"
path = "src/lib.rs"
[dependencies.anyhow]
version = "1.0.100"
features = ["std"]
[dependencies.async-openai]
version = "0.30.1"
optional = true
default-features = true
[dependencies.async-trait]
version = "0.1.89"
[dependencies.axum]
version = "0.8.8"
optional = true
[dependencies.azure_storage]
version = "0.21.0"
features = [
"enable_reqwest_rustls",
"hmac_rust",
]
optional = true
default-features = false
[dependencies.base64]
version = "0.22.1"
optional = true
[dependencies.blake3]
version = "1.8.3"
optional = true
[dependencies.cfg-if]
version = "1.0.4"
[dependencies.chrono]
version = "0.4.43"
features = ["serde"]
optional = true
[dependencies.encoding_rs]
version = "0.8.35"
optional = true
[dependencies.futures]
version = "0.3.31"
optional = true
[dependencies.globset]
version = "0.4.18"
optional = true
[dependencies.google-drive3]
version = "7.0.0"
optional = true
[dependencies.hex]
version = "0.4.3"
optional = true
[dependencies.http]
version = "1.4.0"
optional = true
[dependencies.neo4rs]
version = "0.8.0"
optional = true
[dependencies.qdrant-client]
version = "1.16.0"
optional = true
[dependencies.rand]
version = "0.9.2"
optional = true
[dependencies.redis]
version = "1.0.2"
features = [
"connection-manager",
"tokio-comp",
]
optional = true
[dependencies.regex]
version = "1.12.2"
optional = true
[dependencies.reqwest]
version = "0.12.24"
features = [
"json",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0.228"
features = [
"derive",
"rc",
]
optional = true
[dependencies.serde_json]
version = "1.0.149"
optional = true
[dependencies.serde_path_to_error]
version = "0.1.20"
optional = true
[dependencies.sqlx]
version = "0.8.6"
features = [
"chrono",
"postgres",
"runtime-tokio",
"tls-rustls-aws-lc-rs",
"uuid",
]
optional = true
[dependencies.time]
version = "0.3.45"
features = [
"macros",
"serde",
]
optional = true
[dependencies.tokio]
version = "1.49.0"
features = [
"fs",
"full",
"macros",
"rt-multi-thread",
"sync",
"tracing",
]
optional = true
[dependencies.tokio-util]
version = "0.7.18"
features = ["rt"]
optional = true
[dependencies.tracing]
version = "0.1"
features = ["log"]
[dependencies.uuid]
version = "1.19.0"
features = [
"serde",
"v4",
"v8",
]
optional = true
[dependencies.yaml-rust2]
version = "0.11.0"
optional = true
[dev-dependencies.http]
version = "1.4.0"
[dev-dependencies.serde]
version = "1.0.228"
features = [
"derive",
"rc",
]
[dev-dependencies.serde_json]
version = "1.0.149"
[dev-dependencies.serde_path_to_error]
version = "0.1.20"