# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "rag-module"
version = "0.4.1"
authors = ["Escher DBAI <noreply@escher-dbai.com>"]
build = false
exclude = [
    "test-*/",
    "example-*/",
    "models/",
    "data/",
    "qdrant-data/",
    "sessions/",
    "keys/",
    "sync/",
    "cache/",
    "*.db",
    "*.log",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Enterprise RAG module with chat context storage, vector search, session management, and model downloading. Rust implementation with Node.js compatibility."
homepage = "https://github.com/escher-dbai/client-rag-rust/tree/storage-service"
documentation = "https://docs.rs/rag-module"
readme = "README.md"
keywords = [
    "rag",
    "ai",
    "vector-search",
    "embeddings",
    "chat",
]
categories = [
    "science",
    "algorithms",
    "api-bindings",
    "database-implementations",
    "web-programming",
]
license = "MIT"
repository = "https://github.com/escher-dbai/client-rag-rust/tree/storage-service"

[features]
aws = [
    "dep:aws-sdk-s3",
    "dep:aws-config",
]
azure = ["dep:azure_storage_blobs"]
default = [
    "qdrant",
    "local-storage",
    "encryption",
    "aws",
    "metal",
]
encryption = []
gcp = ["dep:google-cloud-storage"]
local-storage = []
metal = []
qdrant = []

[lib]
name = "rag_module"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[[example]]
name = "aws_estate_example"
path = "examples/aws_estate_example.rs"

[[example]]
name = "aws_estate_service_usage"
path = "examples/aws_estate_service_usage.rs"

[[example]]
name = "check_deployment"
path = "examples/check_deployment.rs"

[[example]]
name = "clean_search_test"
path = "examples/clean_search_test.rs"

[[example]]
name = "complete_chat_example"
path = "examples/complete_chat_example.rs"

[[example]]
name = "comprehensive_test_example"
path = "examples/comprehensive_test_example.rs"

[[example]]
name = "comprehensive_test_flow"
path = "examples/comprehensive_test_flow.rs"

[[example]]
name = "continue_chat_example"
path = "examples/continue_chat_example.rs"

[[example]]
name = "debug_data_count"
path = "examples/debug_data_count.rs"

[[example]]
name = "debug_decrypt"
path = "examples/debug_decrypt.rs"

[[example]]
name = "debug_decryption"
path = "examples/debug_decryption.rs"

[[example]]
name = "debug_document_creation"
path = "examples/debug_document_creation.rs"

[[example]]
name = "debug_encryption_keys"
path = "examples/debug_encryption_keys.rs"

[[example]]
name = "debug_estate_data"
path = "examples/debug_estate_data.rs"

[[example]]
name = "debug_metadata_structure"
path = "examples/debug_metadata_structure.rs"

[[example]]
name = "debug_no_threshold"
path = "examples/debug_no_threshold.rs"

[[example]]
name = "debug_search_detailed"
path = "examples/debug_search_detailed.rs"

[[example]]
name = "debug_unknown_resources"
path = "examples/debug_unknown_resources.rs"

[[example]]
name = "debug_uuid_mismatch"
path = "examples/debug_uuid_mismatch.rs"

[[example]]
name = "debug_vector_mismatch"
path = "examples/debug_vector_mismatch.rs"

[[example]]
name = "debug_vector_search"
path = "examples/debug_vector_search.rs"

[[example]]
name = "demo_search_functionality"
path = "examples/demo_search_functionality.rs"

[[example]]
name = "fresh_storage_test"
path = "examples/fresh_storage_test.rs"

[[example]]
name = "investigate_vector_search"
path = "examples/investigate_vector_search.rs"

[[example]]
name = "minimal_search_test"
path = "examples/minimal_search_test.rs"

[[example]]
name = "quick_search_demo"
path = "examples/quick_search_demo.rs"

[[example]]
name = "search_response_analysis"
path = "examples/search_response_analysis.rs"

[[example]]
name = "simple_search_test"
path = "examples/simple_search_test.rs"

[[example]]
name = "store_aws_estate_data"
path = "examples/store_aws_estate_data.rs"

[[example]]
name = "test_chat_history_json"
path = "examples/test_chat_history_json.rs"

[[example]]
name = "test_decrypt_estate"
path = "examples/test_decrypt_estate.rs"

[[example]]
name = "test_decrypt_first_search"
path = "examples/test_decrypt_first_search.rs"

[[example]]
name = "test_decrypt_function"
path = "examples/test_decrypt_function.rs"

[[example]]
name = "test_fixed_search"
path = "examples/test_fixed_search.rs"

[[example]]
name = "test_get_all_contexts"
path = "examples/test_get_all_contexts.rs"

[[example]]
name = "test_new_json_format"
path = "examples/test_new_json_format.rs"

[[example]]
name = "test_search_indexing"
path = "examples/test_search_indexing.rs"

[[example]]
name = "test_search_without_filters"
path = "examples/test_search_without_filters.rs"

[[example]]
name = "test_unified_collections"
path = "examples/test_unified_collections.rs"

[[example]]
name = "test_vector_search"
path = "examples/test_vector_search.rs"

[[example]]
name = "verify_data"
path = "examples/verify_data.rs"

[[example]]
name = "verify_search_results"
path = "examples/verify_search_results.rs"

[[example]]
name = "view_encrypted_chat_data"
path = "examples/view_encrypted_chat_data.rs"

[[example]]
name = "working_search_demo"
path = "examples/working_search_demo.rs"

[dependencies.aes-gcm]
version = "0.10"

[dependencies.anyhow]
version = "1.0"

[dependencies.argon2]
version = "0.5"

[dependencies.async-trait]
version = "0.1"

[dependencies.aws-config]
version = "1.5"
optional = true

[dependencies.aws-sdk-s3]
version = "1.58"
optional = true

[dependencies.axum]
version = "0.7"

[dependencies.azure_storage_blobs]
version = "0.20"
optional = true

[dependencies.base64]
version = "0.21"

[dependencies.bytes]
version = "1.5"

[dependencies.candle-core]
version = "0.9.1"
features = ["metal"]

[dependencies.candle-nn]
version = "0.9.1"
features = ["metal"]

[dependencies.candle-transformers]
version = "0.9.1"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.config]
version = "0.14"

[dependencies.fs_extra]
version = "1.3"

[dependencies.futures]
version = "0.3"

[dependencies.google-cloud-storage]
version = "0.18"
optional = true

[dependencies.hex]
version = "0.4"

[dependencies.hf-hub]
version = "0.3"
features = ["tokio"]

[dependencies.indexmap]
version = "2.0"
features = ["serde"]

[dependencies.keyring]
version = "3.6.3"

[dependencies.napi]
version = "2.16"
features = [
    "async",
    "serde-json",
]

[dependencies.napi-derive]
version = "2.16"

[dependencies.ndarray]
version = "0.15"

[dependencies.once_cell]
version = "1.19"

[dependencies.qdrant-client]
version = "1.12"
features = ["serde"]

[dependencies.rand]
version = "0.8"

[dependencies.redis]
version = "0.24"
features = [
    "tokio-comp",
    "json",
]

[dependencies.regex]
version = "1.10"

[dependencies.reqwest]
version = "0.11"
features = ["json"]

[dependencies.ring]
version = "0.17"

[dependencies.safetensors]
version = "0.4"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"
features = ["preserve_order"]

[dependencies.serde_yaml]
version = "0.9"

[dependencies.sha2]
version = "0.10"

[dependencies.sqlx]
version = "0.7"
features = [
    "runtime-tokio-rustls",
    "postgres",
    "sqlite",
    "json",
    "uuid",
    "chrono",
]

[dependencies.thiserror]
version = "1.0"

[dependencies.tokenizers]
version = "0.22"

[dependencies.tokio]
version = "1.40"
features = ["full"]

[dependencies.tokio-fs]
version = "0.1"

[dependencies.tower]
version = "0.4"

[dependencies.tower-http]
version = "0.5"
features = [
    "cors",
    "trace",
]

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]

[dependencies.uuid]
version = "1.10"
features = [
    "v4",
    "serde",
]

[dev-dependencies.tempfile]
version = "3.8"

[dev-dependencies.tokio-test]
version = "0.4"
