# 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 = "chunkshop-rs"
version = "0.8.2"
authors = ["The Yonk <matt@theyonk.com>"]
build = false
exclude = ["tests/parity-fixtures/*"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Standalone ingest-to-pgvector: source -> chunker -> embedder -> extractor -> table. int8 BGE by default; bakeoff matrix evaluator built in. Cross-language wire-format compatible with the Python `chunkshop` package."
homepage = "https://github.com/yonk-labs/chunkshop"
readme = "README.md"
keywords = [
    "rag",
    "pgvector",
    "embeddings",
    "chunking",
    "fastembed",
]
categories = [
    "database",
    "science",
    "text-processing",
]
license = "MIT"
repository = "https://github.com/yonk-labs/chunkshop"

[features]
bakeoff = ["pipeline"]
chunkers = []
code-aware = []
code-aware-go = [
    "code-aware",
    "dep:tree-sitter",
    "dep:tree-sitter-go",
    "dep:tree-sitter-tags",
]
code-aware-java = [
    "code-aware",
    "dep:tree-sitter",
    "dep:tree-sitter-java",
    "dep:tree-sitter-tags",
]
code-aware-javascript = [
    "code-aware",
    "dep:tree-sitter",
    "dep:tree-sitter-javascript",
    "dep:tree-sitter-tags",
]
code-aware-python = [
    "code-aware",
    "dep:tree-sitter",
    "dep:tree-sitter-python",
    "dep:tree-sitter-tags",
]
code-aware-rust = [
    "code-aware",
    "dep:tree-sitter",
    "dep:tree-sitter-rust",
    "dep:tree-sitter-tags",
]
code-aware-typescript = [
    "code-aware",
    "dep:tree-sitter",
    "dep:tree-sitter-typescript",
    "dep:tree-sitter-tags",
]
default = ["full"]
embedder = [
    "embedder-core",
    "embedder-hub",
]
embedder-core = [
    "dep:fastembed",
    "dep:ndarray",
    "dep:ort",
    "dep:tokenizers",
]
embedder-hub = [
    "embedder-core",
    "dep:hf-hub",
    "fastembed/hf-hub-native-tls",
]
extractor = ["dep:whatlang"]
full = [
    "chunkers",
    "embedder",
    "extractor",
    "source",
    "sink",
    "pipeline",
    "bakeoff",
    "memory",
]
lede = ["dep:lede"]
memory = [
    "source",
    "sink",
]
pipeline = [
    "chunkers",
    "embedder",
    "extractor",
    "source",
    "sink",
]
sink = [
    "dep:blake2",
    "dep:pgvector",
    "dep:sqlx",
    "dep:clickhouse",
    "dep:rusqlite",
    "dep:sqlite-vec",
    "dep:url",
    "dep:urlencoding",
    "dep:tokio",
]
source = [
    "dep:futures",
    "dep:glob",
    "dep:object_store",
    "dep:reqwest",
    "dep:tokio",
]

[lib]
name = "chunkshop"
path = "src/lib.rs"

[[bin]]
name = "chunkshop-rs"
path = "src/main.rs"
required-features = ["full"]

[[bin]]
name = "fqn-cli"
path = "src/bin/fqn-cli.rs"

[[test]]
name = "backend_clickhouse_conn"
path = "tests/backend_clickhouse_conn.rs"

[[test]]
name = "backend_mariadb_conn"
path = "tests/backend_mariadb_conn.rs"

[[test]]
name = "backend_postgres_conn"
path = "tests/backend_postgres_conn.rs"

[[test]]
name = "backend_sqlite_conn"
path = "tests/backend_sqlite_conn.rs"

[[test]]
name = "clickhouse_driver_smoke"
path = "tests/clickhouse_driver_smoke.rs"

[[test]]
name = "clickhouse_sink_append_only"
path = "tests/clickhouse_sink_append_only.rs"

[[test]]
name = "clickhouse_sink_create_table"
path = "tests/clickhouse_sink_create_table.rs"

[[test]]
name = "clickhouse_sink_replacing_engine"
path = "tests/clickhouse_sink_replacing_engine.rs"

[[test]]
name = "clickhouse_table_source"
path = "tests/clickhouse_table_source.rs"

[[test]]
name = "config_legacy_rejection"
path = "tests/config_legacy_rejection.rs"

[[test]]
name = "cross_backend_matrix"
path = "tests/cross_backend_matrix.rs"

[[test]]
name = "cross_language_sqlite_parity"
path = "tests/cross_language_sqlite_parity.rs"

[[test]]
name = "cross_port_proptest"
path = "tests/cross_port_proptest.rs"

[[test]]
name = "dialect_clickhouse_parity"
path = "tests/dialect_clickhouse_parity.rs"

[[test]]
name = "dialect_mariadb_parity"
path = "tests/dialect_mariadb_parity.rs"

[[test]]
name = "dialect_postgres_parity"
path = "tests/dialect_postgres_parity.rs"

[[test]]
name = "dialect_sqlite_parity"
path = "tests/dialect_sqlite_parity.rs"

[[test]]
name = "embedding_parity"
path = "tests/embedding_parity.rs"

[[test]]
name = "extractor_lang_detect"
path = "tests/extractor_lang_detect.rs"

[[test]]
name = "extractor_none_composite"
path = "tests/extractor_none_composite.rs"

[[test]]
name = "fixed_overlap_parity"
path = "tests/fixed_overlap_parity.rs"

[[test]]
name = "heading_boundary_parity"
path = "tests/heading_boundary_parity.rs"

[[test]]
name = "hierarchical_summary_parity"
path = "tests/hierarchical_summary_parity.rs"

[[test]]
name = "hierarchy_parity"
path = "tests/hierarchy_parity.rs"

[[test]]
name = "http_crawl"
path = "tests/http_crawl.rs"

[[test]]
name = "http_source"
path = "tests/http_source.rs"

[[test]]
name = "json_corpus_source"
path = "tests/json_corpus_source.rs"

[[test]]
name = "jsonpath_parity"
path = "tests/jsonpath_parity.rs"

[[test]]
name = "mariadb_cross_lang_parity"
path = "tests/mariadb_cross_lang_parity.rs"

[[test]]
name = "mariadb_sink_create_table"
path = "tests/mariadb_sink_create_table.rs"

[[test]]
name = "mariadb_table_source"
path = "tests/mariadb_table_source.rs"

[[test]]
name = "memory_e2e"
path = "tests/memory_e2e.rs"

[[test]]
name = "memory_presets"
path = "tests/memory_presets.rs"

[[test]]
name = "memory_resilience"
path = "tests/memory_resilience.rs"

[[test]]
name = "memory_sink"
path = "tests/memory_sink.rs"

[[test]]
name = "memory_staging"
path = "tests/memory_staging.rs"

[[test]]
name = "neighbor_expand_parity"
path = "tests/neighbor_expand_parity.rs"

[[test]]
name = "oversize"
path = "tests/oversize.rs"

[[test]]
name = "parity"
path = "tests/parity.rs"

[[test]]
name = "pg_sink_create_table"
path = "tests/pg_sink_create_table.rs"

[[test]]
name = "pg_table_source"
path = "tests/pg_table_source.rs"

[[test]]
name = "pg_table_tuple_cursor"
path = "tests/pg_table_tuple_cursor.rs"

[[test]]
name = "raw_store"
path = "tests/raw_store.rs"

[[test]]
name = "s3_incremental"
path = "tests/s3_incremental.rs"

[[test]]
name = "s3_source"
path = "tests/s3_source.rs"

[[test]]
name = "sample_clickhouse_yaml_loads"
path = "tests/sample_clickhouse_yaml_loads.rs"

[[test]]
name = "semantic_smoke"
path = "tests/semantic_smoke.rs"

[[test]]
name = "semantic_warning"
path = "tests/semantic_warning.rs"

[[test]]
name = "sink_modes_parity"
path = "tests/sink_modes_parity.rs"

[[test]]
name = "source_session_staging"
path = "tests/source_session_staging.rs"

[[test]]
name = "sp1_parity_python"
path = "tests/sp1_parity_python.rs"

[[test]]
name = "sqlite_sink_create_table"
path = "tests/sqlite_sink_create_table.rs"

[[test]]
name = "sqlite_sink_delete_document"
path = "tests/sqlite_sink_delete_document.rs"

[[test]]
name = "sqlite_sink_modes"
path = "tests/sqlite_sink_modes.rs"

[[test]]
name = "sqlite_sink_query_top_k"
path = "tests/sqlite_sink_query_top_k.rs"

[[test]]
name = "sqlite_sink_two_table_dance"
path = "tests/sqlite_sink_two_table_dance.rs"

[[test]]
name = "sqlite_table_source"
path = "tests/sqlite_table_source.rs"

[[test]]
name = "sqlite_vec_smoke"
path = "tests/sqlite_vec_smoke.rs"

[[test]]
name = "summary_embed_parity"
path = "tests/summary_embed_parity.rs"

[[test]]
name = "sync_primitives"
path = "tests/sync_primitives.rs"

[dependencies.anyhow]
version = "1"

[dependencies.blake2]
version = "0.10"
optional = true
default-features = false

[dependencies.clap]
version = "4"
features = ["derive"]

[dependencies.clickhouse]
version = "0.15"
optional = true

[dependencies.fastembed]
version = "5.13.1"
features = [
    "ort-download-binaries-native-tls",
    "image-models",
]
optional = true
default-features = false

[dependencies.futures]
version = "0.3"
optional = true

[dependencies.glob]
version = "0.3"
optional = true

[dependencies.hf-hub]
version = "0.5"
features = ["ureq"]
optional = true
default-features = false

[dependencies.lede]
version = "0.3"
optional = true

[dependencies.ndarray]
version = "0.17.2"
optional = true
default-features = false

[dependencies.object_store]
version = "0.11"
features = ["aws"]
optional = true
default-features = false

[dependencies.ort]
version = "=2.0.0-rc.12"
features = [
    "ndarray",
    "std",
    "api-24",
]
optional = true
default-features = false

[dependencies.pgvector]
version = "=0.4.1"
features = ["sqlx"]
optional = true

[dependencies.regex]
version = "1"

[dependencies.reqwest]
version = "0.12"
features = ["rustls-tls"]
optional = true
default-features = false

[dependencies.rusqlite]
version = "0.32"
features = [
    "bundled",
    "load_extension",
]
optional = true

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

[dependencies.serde_json]
version = "1"

[dependencies.serde_yaml_ng]
version = "0.10"

[dependencies.sha1]
version = "0.10"

[dependencies.sha2]
version = "0.10"

[dependencies.sqlite-vec]
version = "=0.1.6"
optional = true

[dependencies.sqlx]
version = "0.8.6"
features = [
    "runtime-tokio",
    "postgres",
    "mysql",
    "json",
    "chrono",
]
optional = true
default-features = false

[dependencies.thiserror]
version = "1"

[dependencies.tokenizers]
version = "0.22.2"
features = ["onig"]
optional = true
default-features = false

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "macros",
]
optional = true

[dependencies.tracing]
version = "0.1"

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

[dependencies.tree-sitter]
version = "0.26"
optional = true

[dependencies.tree-sitter-go]
version = "0.25"
optional = true

[dependencies.tree-sitter-java]
version = "0.23"
optional = true

[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true

[dependencies.tree-sitter-python]
version = "0.25"
optional = true

[dependencies.tree-sitter-rust]
version = "0.24"
optional = true

[dependencies.tree-sitter-tags]
version = "0.26"
optional = true

[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true

[dependencies.url]
version = "2"
optional = true

[dependencies.urlencoding]
version = "2"
optional = true

[dependencies.whatlang]
version = "0.16"
optional = true

[dev-dependencies.futures]
version = "0.3"

[dev-dependencies.proptest]
version = "1"

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

[dev-dependencies.tracing-test]
version = "0.2"
features = ["no-env-filter"]
