[package]
edition = "2024"
rust-version = "1.89"
name = "recoco"
version = "0.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "ReCoco is an all-Rust fork of CocoIndex with greater flexibility."
readme = "README.md"
keywords = [
"ai",
"cocoindex",
"data-processing",
"etl",
"pipeline",
]
categories = [
"data-structures",
"database",
"science",
]
license = "Apache-2.0"
repository = "https://github.com/knitli/recoco"
[features]
all-functions = [
"function-detect-lang",
"function-embed",
"function-extract-llm",
"function-json",
"function-split",
]
all-sources = [
"source-azure",
"source-gdrive",
"source-local-file",
"source-postgres",
"source-s3",
]
all-targets = [
"target-kuzu",
"target-neo4j",
"target-postgres",
"target-qdrant",
]
default = ["source-local-file"]
full = [
"all-functions",
"all-sources",
"all-targets",
]
function-detect-lang = []
function-embed = [
"dep:async-openai",
"dep:google-cloud-aiplatform-v1",
"dep:google-cloud-gax",
"dep:json5",
"dep:reqwest",
"recoco-utils/openai",
"recoco-utils/reqwest",
]
function-extract-llm = [
"dep:async-openai",
"dep:json5",
"dep:reqwest",
"recoco-utils/openai",
"recoco-utils/reqwest",
]
function-json = ["dep:json5"]
function-split = []
legacy-states-v0 = []
source-azure = [
"dep:azure_core",
"dep:azure_identity",
"dep:azure_storage",
"dep:azure_storage_blobs",
"recoco-utils/azure",
]
source-gdrive = [
"dep:google-drive3",
"dep:http-body-util",
"dep:hyper-rustls",
"dep:hyper-util",
"dep:yup-oauth2",
"recoco-utils/google-drive",
]
source-local-file = []
source-postgres = [
"dep:pgvector",
"recoco-utils/sqlx",
]
source-s3 = [
"dep:aws-config",
"dep:aws-sdk-s3",
"dep:aws-sdk-sqs",
"dep:redis",
"recoco-utils/redis",
]
target-kuzu = [
"dep:reqwest",
"recoco-utils/reqwest",
"target-neo4j",
]
target-neo4j = [
"dep:neo4rs",
"recoco-utils/neo4rs",
]
target-postgres = ["source-postgres"]
target-qdrant = [
"dep:qdrant-client",
"recoco-utils/qdrant",
]
[lib]
name = "recoco"
path = "src/lib.rs"
[[example]]
name = "custom_op"
path = "examples/custom_op.rs"
[[example]]
name = "detect_lang"
path = "examples/detect_lang.rs"
[[example]]
name = "file_processing"
path = "examples/file_processing.rs"
[[example]]
name = "transient"
path = "examples/transient.rs"
[dependencies.anyhow]
version = "1.0.100"
features = ["std"]
[dependencies.async-openai]
version = "0.30.1"
optional = true
default-features = true
[dependencies.async-stream]
version = "0.3.6"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.aws-config]
version = "1.8.12"
optional = true
[dependencies.aws-sdk-s3]
version = "1.120.0"
optional = true
[dependencies.aws-sdk-sqs]
version = "1.92.0"
optional = true
[dependencies.axum]
version = "0.8.8"
[dependencies.axum-extra]
version = "0.12.5"
features = ["query"]
[dependencies.azure_core]
version = "0.31.0"
optional = true
[dependencies.azure_identity]
version = "0.21.0"
features = ["enable_reqwest_rustls"]
optional = true
default-features = false
[dependencies.azure_storage]
version = "0.21.0"
features = [
"enable_reqwest_rustls",
"hmac_rust",
]
optional = true
default-features = false
[dependencies.azure_storage_blobs]
version = "0.21.0"
features = [
"enable_reqwest_rustls",
"hmac_rust",
]
optional = true
default-features = false
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.11.0"
features = ["serde"]
[dependencies.chrono]
version = "0.4.43"
features = ["serde"]
[dependencies.config]
version = "0.15.19"
[dependencies.const_format]
version = "0.2.35"
[dependencies.derive-where]
version = "1.6.0"
features = ["serde"]
[dependencies.encoding_rs]
version = "0.8.35"
[dependencies.expect-test]
version = "1.5.1"
[dependencies.futures]
version = "0.3.31"
[dependencies.globset]
version = "0.4.18"
[dependencies.google-cloud-aiplatform-v1]
version = "1.5.0"
features = ["prediction-service"]
optional = true
default-features = false
[dependencies.google-cloud-gax]
version = "1.5.0"
optional = true
[dependencies.google-drive3]
version = "7.0.0"
optional = true
[dependencies.hex]
version = "0.4.3"
[dependencies.http-body-util]
version = "0.1.3"
optional = true
[dependencies.hyper-rustls]
version = "0.27.7"
optional = true
[dependencies.hyper-util]
version = "0.1.19"
optional = true
[dependencies.indenter]
version = "0.3.4"
[dependencies.indexmap]
version = "2.13.0"
features = ["serde"]
[dependencies.indoc]
version = "2.0.7"
[dependencies.infer]
version = "0.19.0"
[dependencies.itertools]
version = "0.14.0"
[dependencies.json5]
version = "1.3.0"
optional = true
[dependencies.log]
version = "0.4.29"
[dependencies.neo4rs]
version = "0.8.0"
optional = true
[dependencies.pgvector]
version = "0.4.1"
features = [
"halfvec",
"sqlx",
]
optional = true
[dependencies.phf]
version = "0.12.1"
features = ["macros"]
[dependencies.qdrant-client]
version = "1.16.0"
optional = true
[dependencies.rand]
version = "0.9.2"
[dependencies.recoco-splitters]
version = "0.1.0"
[dependencies.recoco-utils]
version = "0.1.0"
features = [
"bytes_decode",
"sqlx",
"yaml",
]
[dependencies.redis]
version = "1.0.2"
features = [
"connection-manager",
"tokio-comp",
]
optional = true
[dependencies.regex]
version = "1.12.2"
[dependencies.reqwest]
version = "0.12.24"
features = [
"json",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.rustls]
version = "0.23.36"
[dependencies.schemars]
version = "1.2.0"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.149"
[dependencies.serde_path_to_error]
version = "0.1.20"
[dependencies.serde_with]
version = "3.16.1"
features = ["base64"]
[dependencies.sqlx]
version = "0.8.6"
features = [
"chrono",
"postgres",
"runtime-tokio",
"tls-rustls-aws-lc-rs",
"uuid",
]
[dependencies.time]
version = "0.3.45"
features = [
"macros",
"serde",
]
[dependencies.tokio]
version = "1.49.0"
features = [
"fs",
"full",
"macros",
"rt-multi-thread",
"sync",
"tracing",
]
[dependencies.tokio-stream]
version = "0.1.18"
[dependencies.tokio-util]
version = "0.7.18"
features = ["rt"]
[dependencies.tower]
version = "0.5.3"
[dependencies.tower-http]
version = "0.6.7"
features = [
"cors",
"trace",
]
[dependencies.tracing]
version = "0.1"
features = ["log"]
[dependencies.tracing-subscriber]
version = "0.3.22"
features = ["env-filter"]
[dependencies.unicase]
version = "2.9.0"
[dependencies.urlencoding]
version = "2.1.3"
[dependencies.uuid]
version = "1.19.0"
features = [
"serde",
"v4",
"v8",
]
[dependencies.yaml-rust2]
version = "0.11.0"
[dependencies.yup-oauth2]
version = "12.1.2"
optional = true