From b58e1acd47a6ef3457afe0139e55026eed195811 Mon Sep 17 00:00:00 2001 From: Jiangzhou He Date: Sat, 8 Nov 2025 18:46:00 -0800 Subject: [PATCH 1/3] refactor: make `cocoindex` crate a sub crate under the workspace --- Cargo.toml | 31 ++--- pyproject.toml | 2 + rust/cocoindex/Cargo.toml | 123 ++++++++++++++++++ {src => rust/cocoindex/src}/base/duration.rs | 0 .../cocoindex/src}/base/field_attrs.rs | 0 .../cocoindex/src}/base/json_schema.rs | 0 {src => rust/cocoindex/src}/base/mod.rs | 0 {src => rust/cocoindex/src}/base/schema.rs | 0 {src => rust/cocoindex/src}/base/spec.rs | 0 {src => rust/cocoindex/src}/base/value.rs | 0 .../cocoindex/src}/builder/analyzed_flow.rs | 0 .../cocoindex/src}/builder/analyzer.rs | 0 .../cocoindex/src}/builder/exec_ctx.rs | 0 .../cocoindex/src}/builder/flow_builder.rs | 0 {src => rust/cocoindex/src}/builder/mod.rs | 0 {src => rust/cocoindex/src}/builder/plan.rs | 0 .../cocoindex/src}/execution/db_tracking.rs | 0 .../src}/execution/db_tracking_setup.rs | 0 .../cocoindex/src}/execution/dumper.rs | 0 .../cocoindex/src}/execution/evaluator.rs | 0 .../src}/execution/indexing_status.rs | 0 .../cocoindex/src}/execution/live_updater.rs | 0 .../cocoindex/src}/execution/memoization.rs | 0 {src => rust/cocoindex/src}/execution/mod.rs | 0 .../cocoindex/src}/execution/row_indexer.rs | 0 .../src}/execution/source_indexer.rs | 0 .../cocoindex/src}/execution/stats.rs | 0 {src => rust/cocoindex/src}/lib.rs | 0 {src => rust/cocoindex/src}/lib_context.rs | 0 {src => rust/cocoindex/src}/llm/anthropic.rs | 0 {src => rust/cocoindex/src}/llm/bedrock.rs | 0 {src => rust/cocoindex/src}/llm/gemini.rs | 0 {src => rust/cocoindex/src}/llm/litellm.rs | 0 {src => rust/cocoindex/src}/llm/mod.rs | 0 {src => rust/cocoindex/src}/llm/ollama.rs | 0 {src => rust/cocoindex/src}/llm/openai.rs | 0 {src => rust/cocoindex/src}/llm/openrouter.rs | 0 {src => rust/cocoindex/src}/llm/vllm.rs | 0 {src => rust/cocoindex/src}/llm/voyage.rs | 0 .../cocoindex/src}/ops/factory_bases.rs | 0 .../src}/ops/functions/detect_program_lang.rs | 0 .../src}/ops/functions/embed_text.rs | 0 .../src}/ops/functions/extract_by_llm.rs | 0 .../cocoindex/src}/ops/functions/mod.rs | 0 .../src}/ops/functions/parse_json.rs | 0 .../src}/ops/functions/split_by_separators.rs | 0 .../src}/ops/functions/split_recursively.rs | 0 .../src}/ops/functions/test_utils.rs | 0 {src => rust/cocoindex/src}/ops/interface.rs | 0 {src => rust/cocoindex/src}/ops/mod.rs | 0 {src => rust/cocoindex/src}/ops/py_factory.rs | 0 .../cocoindex/src}/ops/registration.rs | 0 {src => rust/cocoindex/src}/ops/registry.rs | 0 {src => rust/cocoindex/src}/ops/sdk.rs | 0 {src => rust/cocoindex/src}/ops/shared/mod.rs | 0 .../cocoindex/src}/ops/shared/postgres.rs | 0 .../src}/ops/shared/program_langs.rs | 0 .../cocoindex/src}/ops/shared/split.rs | 0 .../cocoindex/src}/ops/sources/amazon_s3.rs | 0 .../cocoindex/src}/ops/sources/azure_blob.rs | 0 .../src}/ops/sources/google_drive.rs | 0 .../cocoindex/src}/ops/sources/local_file.rs | 0 .../cocoindex/src}/ops/sources/mod.rs | 0 .../cocoindex/src}/ops/sources/postgres.rs | 0 .../cocoindex/src}/ops/sources/shared/mod.rs | 0 .../ops/sources/shared/pattern_matcher.rs | 0 .../cocoindex/src}/ops/targets/kuzu.rs | 0 .../cocoindex/src}/ops/targets/mod.rs | 0 .../cocoindex/src}/ops/targets/neo4j.rs | 0 .../cocoindex/src}/ops/targets/postgres.rs | 0 .../cocoindex/src}/ops/targets/qdrant.rs | 0 .../cocoindex/src}/ops/targets/shared/mod.rs | 0 .../src}/ops/targets/shared/property_graph.rs | 0 .../src}/ops/targets/shared/table_columns.rs | 0 {src => rust/cocoindex/src}/prelude.rs | 0 {src => rust/cocoindex/src}/py/convert.rs | 0 {src => rust/cocoindex/src}/py/future.rs | 0 {src => rust/cocoindex/src}/py/mod.rs | 0 {src => rust/cocoindex/src}/server.rs | 0 {src => rust/cocoindex/src}/service/error.rs | 0 {src => rust/cocoindex/src}/service/flows.rs | 0 {src => rust/cocoindex/src}/service/mod.rs | 0 .../cocoindex/src}/service/query_handler.rs | 0 {src => rust/cocoindex/src}/settings.rs | 0 .../cocoindex/src}/setup/auth_registry.rs | 0 .../cocoindex/src}/setup/components.rs | 0 .../cocoindex/src}/setup/db_metadata.rs | 0 {src => rust/cocoindex/src}/setup/driver.rs | 0 .../cocoindex/src}/setup/flow_features.rs | 0 {src => rust/cocoindex/src}/setup/mod.rs | 0 {src => rust/cocoindex/src}/setup/states.rs | 0 {src => rust/cocoindex/src}/utils/batching.rs | 0 .../cocoindex/src}/utils/bytes_decode.rs | 0 .../cocoindex/src}/utils/concur_control.rs | 0 {src => rust/cocoindex/src}/utils/db.rs | 0 {src => rust/cocoindex/src}/utils/deser.rs | 0 .../cocoindex/src}/utils/fingerprint.rs | 0 {src => rust/cocoindex/src}/utils/http.rs | 0 .../cocoindex/src}/utils/immutable.rs | 0 {src => rust/cocoindex/src}/utils/mod.rs | 0 .../cocoindex/src}/utils/retryable.rs | 0 .../cocoindex/src}/utils/str_sanitize.rs | 0 {src => rust/cocoindex/src}/utils/yaml_ser.rs | 0 103 files changed, 134 insertions(+), 22 deletions(-) create mode 100644 rust/cocoindex/Cargo.toml rename {src => rust/cocoindex/src}/base/duration.rs (100%) rename {src => rust/cocoindex/src}/base/field_attrs.rs (100%) rename {src => rust/cocoindex/src}/base/json_schema.rs (100%) rename {src => rust/cocoindex/src}/base/mod.rs (100%) rename {src => rust/cocoindex/src}/base/schema.rs (100%) rename {src => rust/cocoindex/src}/base/spec.rs (100%) rename {src => rust/cocoindex/src}/base/value.rs (100%) rename {src => rust/cocoindex/src}/builder/analyzed_flow.rs (100%) rename {src => rust/cocoindex/src}/builder/analyzer.rs (100%) rename {src => rust/cocoindex/src}/builder/exec_ctx.rs (100%) rename {src => rust/cocoindex/src}/builder/flow_builder.rs (100%) rename {src => rust/cocoindex/src}/builder/mod.rs (100%) rename {src => rust/cocoindex/src}/builder/plan.rs (100%) rename {src => rust/cocoindex/src}/execution/db_tracking.rs (100%) rename {src => rust/cocoindex/src}/execution/db_tracking_setup.rs (100%) rename {src => rust/cocoindex/src}/execution/dumper.rs (100%) rename {src => rust/cocoindex/src}/execution/evaluator.rs (100%) rename {src => rust/cocoindex/src}/execution/indexing_status.rs (100%) rename {src => rust/cocoindex/src}/execution/live_updater.rs (100%) rename {src => rust/cocoindex/src}/execution/memoization.rs (100%) rename {src => rust/cocoindex/src}/execution/mod.rs (100%) rename {src => rust/cocoindex/src}/execution/row_indexer.rs (100%) rename {src => rust/cocoindex/src}/execution/source_indexer.rs (100%) rename {src => rust/cocoindex/src}/execution/stats.rs (100%) rename {src => rust/cocoindex/src}/lib.rs (100%) rename {src => rust/cocoindex/src}/lib_context.rs (100%) rename {src => rust/cocoindex/src}/llm/anthropic.rs (100%) rename {src => rust/cocoindex/src}/llm/bedrock.rs (100%) rename {src => rust/cocoindex/src}/llm/gemini.rs (100%) rename {src => rust/cocoindex/src}/llm/litellm.rs (100%) rename {src => rust/cocoindex/src}/llm/mod.rs (100%) rename {src => rust/cocoindex/src}/llm/ollama.rs (100%) rename {src => rust/cocoindex/src}/llm/openai.rs (100%) rename {src => rust/cocoindex/src}/llm/openrouter.rs (100%) rename {src => rust/cocoindex/src}/llm/vllm.rs (100%) rename {src => rust/cocoindex/src}/llm/voyage.rs (100%) rename {src => rust/cocoindex/src}/ops/factory_bases.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/detect_program_lang.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/embed_text.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/extract_by_llm.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/mod.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/parse_json.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/split_by_separators.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/split_recursively.rs (100%) rename {src => rust/cocoindex/src}/ops/functions/test_utils.rs (100%) rename {src => rust/cocoindex/src}/ops/interface.rs (100%) rename {src => rust/cocoindex/src}/ops/mod.rs (100%) rename {src => rust/cocoindex/src}/ops/py_factory.rs (100%) rename {src => rust/cocoindex/src}/ops/registration.rs (100%) rename {src => rust/cocoindex/src}/ops/registry.rs (100%) rename {src => rust/cocoindex/src}/ops/sdk.rs (100%) rename {src => rust/cocoindex/src}/ops/shared/mod.rs (100%) rename {src => rust/cocoindex/src}/ops/shared/postgres.rs (100%) rename {src => rust/cocoindex/src}/ops/shared/program_langs.rs (100%) rename {src => rust/cocoindex/src}/ops/shared/split.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/amazon_s3.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/azure_blob.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/google_drive.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/local_file.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/mod.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/postgres.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/shared/mod.rs (100%) rename {src => rust/cocoindex/src}/ops/sources/shared/pattern_matcher.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/kuzu.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/mod.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/neo4j.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/postgres.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/qdrant.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/shared/mod.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/shared/property_graph.rs (100%) rename {src => rust/cocoindex/src}/ops/targets/shared/table_columns.rs (100%) rename {src => rust/cocoindex/src}/prelude.rs (100%) rename {src => rust/cocoindex/src}/py/convert.rs (100%) rename {src => rust/cocoindex/src}/py/future.rs (100%) rename {src => rust/cocoindex/src}/py/mod.rs (100%) rename {src => rust/cocoindex/src}/server.rs (100%) rename {src => rust/cocoindex/src}/service/error.rs (100%) rename {src => rust/cocoindex/src}/service/flows.rs (100%) rename {src => rust/cocoindex/src}/service/mod.rs (100%) rename {src => rust/cocoindex/src}/service/query_handler.rs (100%) rename {src => rust/cocoindex/src}/settings.rs (100%) rename {src => rust/cocoindex/src}/setup/auth_registry.rs (100%) rename {src => rust/cocoindex/src}/setup/components.rs (100%) rename {src => rust/cocoindex/src}/setup/db_metadata.rs (100%) rename {src => rust/cocoindex/src}/setup/driver.rs (100%) rename {src => rust/cocoindex/src}/setup/flow_features.rs (100%) rename {src => rust/cocoindex/src}/setup/mod.rs (100%) rename {src => rust/cocoindex/src}/setup/states.rs (100%) rename {src => rust/cocoindex/src}/utils/batching.rs (100%) rename {src => rust/cocoindex/src}/utils/bytes_decode.rs (100%) rename {src => rust/cocoindex/src}/utils/concur_control.rs (100%) rename {src => rust/cocoindex/src}/utils/db.rs (100%) rename {src => rust/cocoindex/src}/utils/deser.rs (100%) rename {src => rust/cocoindex/src}/utils/fingerprint.rs (100%) rename {src => rust/cocoindex/src}/utils/http.rs (100%) rename {src => rust/cocoindex/src}/utils/immutable.rs (100%) rename {src => rust/cocoindex/src}/utils/mod.rs (100%) rename {src => rust/cocoindex/src}/utils/retryable.rs (100%) rename {src => rust/cocoindex/src}/utils/str_sanitize.rs (100%) rename {src => rust/cocoindex/src}/utils/yaml_ser.rs (100%) diff --git a/Cargo.toml b/Cargo.toml index b329f980..931cbe07 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,26 +1,8 @@ -[package] -name = "cocoindex" -# Version used for local development is always higher than others to take precedence. -# Will be overridden for specific release versions. -version = "999.0.0" -edition = "2024" -rust-version = "1.89" -license = "Apache-2.0" +[workspace] +members = ["rust/cocoindex"] +resolver = "2" -[profile.release] -codegen-units = 1 -strip = "symbols" -lto = true - -[lib] -name = "cocoindex_engine" -crate-type = ["cdylib"] - -[features] -default = ["legacy-states-v0"] -legacy-states-v0 = [] - -[dependencies] +[workspace.dependencies] pyo3 = { version = "0.25.1", features = [ "abi3-py311", "auto-initialize", @@ -157,3 +139,8 @@ redis = { version = "0.31.0", features = ["tokio-comp", "connection-manager"] } expect-test = "1.5.0" encoding_rs = "0.8.35" tokio-util = { version = "0.7.16", features = ["rt"] } + +[profile.release] +codegen-units = 1 +strip = "symbols" +lto = true diff --git a/pyproject.toml b/pyproject.toml index cd357730..5e352fdf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,6 +60,8 @@ python-source = "python" module-name = "cocoindex._engine" features = ["pyo3/extension-module"] include = ["THIRD_PARTY_NOTICES.html"] +# Point to the crate within the workspace +manifest-path = "rust/cocoindex/Cargo.toml" [project.optional-dependencies] dev = ["pytest", "pytest-asyncio", "ruff", "mypy", "pre-commit"] diff --git a/rust/cocoindex/Cargo.toml b/rust/cocoindex/Cargo.toml new file mode 100644 index 00000000..fe7c3e81 --- /dev/null +++ b/rust/cocoindex/Cargo.toml @@ -0,0 +1,123 @@ +[package] +name = "cocoindex" +# Version used for local development is always higher than others to take precedence. +# Will be overridden for specific release versions. +version = "999.0.0" +edition = "2024" +rust-version = "1.89" +license = "Apache-2.0" + +[lib] +name = "cocoindex_engine" +crate-type = ["cdylib"] + +[features] +default = ["legacy-states-v0"] +legacy-states-v0 = [] + +[dependencies] +pyo3 = { workspace = true } +pythonize = { workspace = true } +pyo3-async-runtimes = { workspace = true } + +anyhow = { workspace = true } +async-trait = { workspace = true } +axum = { workspace = true } +axum-extra = { workspace = true } +base64 = { workspace = true } +chrono = { workspace = true } +config = { workspace = true } +const_format = { workspace = true } +futures = { workspace = true } +log = { workspace = true } +regex = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +sqlx = { workspace = true } +tokio = { workspace = true } +tower = { workspace = true } +tower-http = { workspace = true } +indexmap = { workspace = true } +blake2 = { workspace = true } +pgvector = { workspace = true } +phf = { workspace = true } +indenter = { workspace = true } +indicatif = { workspace = true } +itertools = { workspace = true } +derivative = { workspace = true } +hex = { workspace = true } +schemars = { workspace = true } +env_logger = { workspace = true } +reqwest = { workspace = true } +async-openai = { workspace = true } + +tree-sitter = { workspace = true } +tree-sitter-language = { workspace = true } +# Per language tree-sitter parsers +tree-sitter-c = { workspace = true } +tree-sitter-cpp = { workspace = true } +tree-sitter-c-sharp = { workspace = true } +tree-sitter-css = { workspace = true } +tree-sitter-fortran = { workspace = true } +tree-sitter-go = { workspace = true } +tree-sitter-html = { workspace = true } +tree-sitter-java = { workspace = true } +tree-sitter-javascript = { workspace = true } +tree-sitter-json = { workspace = true } +# The other more popular crate tree-sitter-kotlin requires tree-sitter < 0.23 for now +tree-sitter-kotlin-ng = { workspace = true } +tree-sitter-md = { workspace = true } +tree-sitter-pascal = { workspace = true } +tree-sitter-php = { workspace = true } +tree-sitter-python = { workspace = true } +tree-sitter-r = { workspace = true } +tree-sitter-ruby = { workspace = true } +tree-sitter-rust = { workspace = true } +tree-sitter-scala = { workspace = true } +tree-sitter-sequel = { workspace = true } +tree-sitter-swift = { workspace = true } +tree-sitter-toml-ng = { workspace = true } +tree-sitter-typescript = { workspace = true } +tree-sitter-xml = { workspace = true } +tree-sitter-yaml = { workspace = true } +tree-sitter-solidity = { workspace = true } + +globset = { workspace = true } +unicase = { workspace = true } +google-drive3 = { workspace = true } +hyper-util = { workspace = true } +hyper-rustls = { workspace = true } +yup-oauth2 = { workspace = true } +rustls = { workspace = true } +http-body-util = { workspace = true } +yaml-rust2 = { workspace = true } +urlencoding = { workspace = true } +qdrant-client = { workspace = true } +uuid = { workspace = true } +tokio-stream = { workspace = true } +async-stream = { workspace = true } +neo4rs = { workspace = true } +bytes = { workspace = true } +rand = { workspace = true } +indoc = { workspace = true } +owo-colors = { workspace = true } +json5 = { workspace = true } +aws-config = { workspace = true } +aws-sdk-s3 = { workspace = true } +aws-sdk-sqs = { workspace = true } +time = { workspace = true } +numpy = { workspace = true } +infer = { workspace = true } +serde_with = { workspace = true } +google-cloud-aiplatform-v1 = { workspace = true } +google-cloud-gax = { workspace = true } + +azure_identity = { workspace = true } +azure_core = { workspace = true } +azure_storage = { workspace = true } +azure_storage_blobs = { workspace = true } +serde_path_to_error = { workspace = true } +redis = { workspace = true } +expect-test = { workspace = true } +encoding_rs = { workspace = true } +tokio-util = { workspace = true } diff --git a/src/base/duration.rs b/rust/cocoindex/src/base/duration.rs similarity index 100% rename from src/base/duration.rs rename to rust/cocoindex/src/base/duration.rs diff --git a/src/base/field_attrs.rs b/rust/cocoindex/src/base/field_attrs.rs similarity index 100% rename from src/base/field_attrs.rs rename to rust/cocoindex/src/base/field_attrs.rs diff --git a/src/base/json_schema.rs b/rust/cocoindex/src/base/json_schema.rs similarity index 100% rename from src/base/json_schema.rs rename to rust/cocoindex/src/base/json_schema.rs diff --git a/src/base/mod.rs b/rust/cocoindex/src/base/mod.rs similarity index 100% rename from src/base/mod.rs rename to rust/cocoindex/src/base/mod.rs diff --git a/src/base/schema.rs b/rust/cocoindex/src/base/schema.rs similarity index 100% rename from src/base/schema.rs rename to rust/cocoindex/src/base/schema.rs diff --git a/src/base/spec.rs b/rust/cocoindex/src/base/spec.rs similarity index 100% rename from src/base/spec.rs rename to rust/cocoindex/src/base/spec.rs diff --git a/src/base/value.rs b/rust/cocoindex/src/base/value.rs similarity index 100% rename from src/base/value.rs rename to rust/cocoindex/src/base/value.rs diff --git a/src/builder/analyzed_flow.rs b/rust/cocoindex/src/builder/analyzed_flow.rs similarity index 100% rename from src/builder/analyzed_flow.rs rename to rust/cocoindex/src/builder/analyzed_flow.rs diff --git a/src/builder/analyzer.rs b/rust/cocoindex/src/builder/analyzer.rs similarity index 100% rename from src/builder/analyzer.rs rename to rust/cocoindex/src/builder/analyzer.rs diff --git a/src/builder/exec_ctx.rs b/rust/cocoindex/src/builder/exec_ctx.rs similarity index 100% rename from src/builder/exec_ctx.rs rename to rust/cocoindex/src/builder/exec_ctx.rs diff --git a/src/builder/flow_builder.rs b/rust/cocoindex/src/builder/flow_builder.rs similarity index 100% rename from src/builder/flow_builder.rs rename to rust/cocoindex/src/builder/flow_builder.rs diff --git a/src/builder/mod.rs b/rust/cocoindex/src/builder/mod.rs similarity index 100% rename from src/builder/mod.rs rename to rust/cocoindex/src/builder/mod.rs diff --git a/src/builder/plan.rs b/rust/cocoindex/src/builder/plan.rs similarity index 100% rename from src/builder/plan.rs rename to rust/cocoindex/src/builder/plan.rs diff --git a/src/execution/db_tracking.rs b/rust/cocoindex/src/execution/db_tracking.rs similarity index 100% rename from src/execution/db_tracking.rs rename to rust/cocoindex/src/execution/db_tracking.rs diff --git a/src/execution/db_tracking_setup.rs b/rust/cocoindex/src/execution/db_tracking_setup.rs similarity index 100% rename from src/execution/db_tracking_setup.rs rename to rust/cocoindex/src/execution/db_tracking_setup.rs diff --git a/src/execution/dumper.rs b/rust/cocoindex/src/execution/dumper.rs similarity index 100% rename from src/execution/dumper.rs rename to rust/cocoindex/src/execution/dumper.rs diff --git a/src/execution/evaluator.rs b/rust/cocoindex/src/execution/evaluator.rs similarity index 100% rename from src/execution/evaluator.rs rename to rust/cocoindex/src/execution/evaluator.rs diff --git a/src/execution/indexing_status.rs b/rust/cocoindex/src/execution/indexing_status.rs similarity index 100% rename from src/execution/indexing_status.rs rename to rust/cocoindex/src/execution/indexing_status.rs diff --git a/src/execution/live_updater.rs b/rust/cocoindex/src/execution/live_updater.rs similarity index 100% rename from src/execution/live_updater.rs rename to rust/cocoindex/src/execution/live_updater.rs diff --git a/src/execution/memoization.rs b/rust/cocoindex/src/execution/memoization.rs similarity index 100% rename from src/execution/memoization.rs rename to rust/cocoindex/src/execution/memoization.rs diff --git a/src/execution/mod.rs b/rust/cocoindex/src/execution/mod.rs similarity index 100% rename from src/execution/mod.rs rename to rust/cocoindex/src/execution/mod.rs diff --git a/src/execution/row_indexer.rs b/rust/cocoindex/src/execution/row_indexer.rs similarity index 100% rename from src/execution/row_indexer.rs rename to rust/cocoindex/src/execution/row_indexer.rs diff --git a/src/execution/source_indexer.rs b/rust/cocoindex/src/execution/source_indexer.rs similarity index 100% rename from src/execution/source_indexer.rs rename to rust/cocoindex/src/execution/source_indexer.rs diff --git a/src/execution/stats.rs b/rust/cocoindex/src/execution/stats.rs similarity index 100% rename from src/execution/stats.rs rename to rust/cocoindex/src/execution/stats.rs diff --git a/src/lib.rs b/rust/cocoindex/src/lib.rs similarity index 100% rename from src/lib.rs rename to rust/cocoindex/src/lib.rs diff --git a/src/lib_context.rs b/rust/cocoindex/src/lib_context.rs similarity index 100% rename from src/lib_context.rs rename to rust/cocoindex/src/lib_context.rs diff --git a/src/llm/anthropic.rs b/rust/cocoindex/src/llm/anthropic.rs similarity index 100% rename from src/llm/anthropic.rs rename to rust/cocoindex/src/llm/anthropic.rs diff --git a/src/llm/bedrock.rs b/rust/cocoindex/src/llm/bedrock.rs similarity index 100% rename from src/llm/bedrock.rs rename to rust/cocoindex/src/llm/bedrock.rs diff --git a/src/llm/gemini.rs b/rust/cocoindex/src/llm/gemini.rs similarity index 100% rename from src/llm/gemini.rs rename to rust/cocoindex/src/llm/gemini.rs diff --git a/src/llm/litellm.rs b/rust/cocoindex/src/llm/litellm.rs similarity index 100% rename from src/llm/litellm.rs rename to rust/cocoindex/src/llm/litellm.rs diff --git a/src/llm/mod.rs b/rust/cocoindex/src/llm/mod.rs similarity index 100% rename from src/llm/mod.rs rename to rust/cocoindex/src/llm/mod.rs diff --git a/src/llm/ollama.rs b/rust/cocoindex/src/llm/ollama.rs similarity index 100% rename from src/llm/ollama.rs rename to rust/cocoindex/src/llm/ollama.rs diff --git a/src/llm/openai.rs b/rust/cocoindex/src/llm/openai.rs similarity index 100% rename from src/llm/openai.rs rename to rust/cocoindex/src/llm/openai.rs diff --git a/src/llm/openrouter.rs b/rust/cocoindex/src/llm/openrouter.rs similarity index 100% rename from src/llm/openrouter.rs rename to rust/cocoindex/src/llm/openrouter.rs diff --git a/src/llm/vllm.rs b/rust/cocoindex/src/llm/vllm.rs similarity index 100% rename from src/llm/vllm.rs rename to rust/cocoindex/src/llm/vllm.rs diff --git a/src/llm/voyage.rs b/rust/cocoindex/src/llm/voyage.rs similarity index 100% rename from src/llm/voyage.rs rename to rust/cocoindex/src/llm/voyage.rs diff --git a/src/ops/factory_bases.rs b/rust/cocoindex/src/ops/factory_bases.rs similarity index 100% rename from src/ops/factory_bases.rs rename to rust/cocoindex/src/ops/factory_bases.rs diff --git a/src/ops/functions/detect_program_lang.rs b/rust/cocoindex/src/ops/functions/detect_program_lang.rs similarity index 100% rename from src/ops/functions/detect_program_lang.rs rename to rust/cocoindex/src/ops/functions/detect_program_lang.rs diff --git a/src/ops/functions/embed_text.rs b/rust/cocoindex/src/ops/functions/embed_text.rs similarity index 100% rename from src/ops/functions/embed_text.rs rename to rust/cocoindex/src/ops/functions/embed_text.rs diff --git a/src/ops/functions/extract_by_llm.rs b/rust/cocoindex/src/ops/functions/extract_by_llm.rs similarity index 100% rename from src/ops/functions/extract_by_llm.rs rename to rust/cocoindex/src/ops/functions/extract_by_llm.rs diff --git a/src/ops/functions/mod.rs b/rust/cocoindex/src/ops/functions/mod.rs similarity index 100% rename from src/ops/functions/mod.rs rename to rust/cocoindex/src/ops/functions/mod.rs diff --git a/src/ops/functions/parse_json.rs b/rust/cocoindex/src/ops/functions/parse_json.rs similarity index 100% rename from src/ops/functions/parse_json.rs rename to rust/cocoindex/src/ops/functions/parse_json.rs diff --git a/src/ops/functions/split_by_separators.rs b/rust/cocoindex/src/ops/functions/split_by_separators.rs similarity index 100% rename from src/ops/functions/split_by_separators.rs rename to rust/cocoindex/src/ops/functions/split_by_separators.rs diff --git a/src/ops/functions/split_recursively.rs b/rust/cocoindex/src/ops/functions/split_recursively.rs similarity index 100% rename from src/ops/functions/split_recursively.rs rename to rust/cocoindex/src/ops/functions/split_recursively.rs diff --git a/src/ops/functions/test_utils.rs b/rust/cocoindex/src/ops/functions/test_utils.rs similarity index 100% rename from src/ops/functions/test_utils.rs rename to rust/cocoindex/src/ops/functions/test_utils.rs diff --git a/src/ops/interface.rs b/rust/cocoindex/src/ops/interface.rs similarity index 100% rename from src/ops/interface.rs rename to rust/cocoindex/src/ops/interface.rs diff --git a/src/ops/mod.rs b/rust/cocoindex/src/ops/mod.rs similarity index 100% rename from src/ops/mod.rs rename to rust/cocoindex/src/ops/mod.rs diff --git a/src/ops/py_factory.rs b/rust/cocoindex/src/ops/py_factory.rs similarity index 100% rename from src/ops/py_factory.rs rename to rust/cocoindex/src/ops/py_factory.rs diff --git a/src/ops/registration.rs b/rust/cocoindex/src/ops/registration.rs similarity index 100% rename from src/ops/registration.rs rename to rust/cocoindex/src/ops/registration.rs diff --git a/src/ops/registry.rs b/rust/cocoindex/src/ops/registry.rs similarity index 100% rename from src/ops/registry.rs rename to rust/cocoindex/src/ops/registry.rs diff --git a/src/ops/sdk.rs b/rust/cocoindex/src/ops/sdk.rs similarity index 100% rename from src/ops/sdk.rs rename to rust/cocoindex/src/ops/sdk.rs diff --git a/src/ops/shared/mod.rs b/rust/cocoindex/src/ops/shared/mod.rs similarity index 100% rename from src/ops/shared/mod.rs rename to rust/cocoindex/src/ops/shared/mod.rs diff --git a/src/ops/shared/postgres.rs b/rust/cocoindex/src/ops/shared/postgres.rs similarity index 100% rename from src/ops/shared/postgres.rs rename to rust/cocoindex/src/ops/shared/postgres.rs diff --git a/src/ops/shared/program_langs.rs b/rust/cocoindex/src/ops/shared/program_langs.rs similarity index 100% rename from src/ops/shared/program_langs.rs rename to rust/cocoindex/src/ops/shared/program_langs.rs diff --git a/src/ops/shared/split.rs b/rust/cocoindex/src/ops/shared/split.rs similarity index 100% rename from src/ops/shared/split.rs rename to rust/cocoindex/src/ops/shared/split.rs diff --git a/src/ops/sources/amazon_s3.rs b/rust/cocoindex/src/ops/sources/amazon_s3.rs similarity index 100% rename from src/ops/sources/amazon_s3.rs rename to rust/cocoindex/src/ops/sources/amazon_s3.rs diff --git a/src/ops/sources/azure_blob.rs b/rust/cocoindex/src/ops/sources/azure_blob.rs similarity index 100% rename from src/ops/sources/azure_blob.rs rename to rust/cocoindex/src/ops/sources/azure_blob.rs diff --git a/src/ops/sources/google_drive.rs b/rust/cocoindex/src/ops/sources/google_drive.rs similarity index 100% rename from src/ops/sources/google_drive.rs rename to rust/cocoindex/src/ops/sources/google_drive.rs diff --git a/src/ops/sources/local_file.rs b/rust/cocoindex/src/ops/sources/local_file.rs similarity index 100% rename from src/ops/sources/local_file.rs rename to rust/cocoindex/src/ops/sources/local_file.rs diff --git a/src/ops/sources/mod.rs b/rust/cocoindex/src/ops/sources/mod.rs similarity index 100% rename from src/ops/sources/mod.rs rename to rust/cocoindex/src/ops/sources/mod.rs diff --git a/src/ops/sources/postgres.rs b/rust/cocoindex/src/ops/sources/postgres.rs similarity index 100% rename from src/ops/sources/postgres.rs rename to rust/cocoindex/src/ops/sources/postgres.rs diff --git a/src/ops/sources/shared/mod.rs b/rust/cocoindex/src/ops/sources/shared/mod.rs similarity index 100% rename from src/ops/sources/shared/mod.rs rename to rust/cocoindex/src/ops/sources/shared/mod.rs diff --git a/src/ops/sources/shared/pattern_matcher.rs b/rust/cocoindex/src/ops/sources/shared/pattern_matcher.rs similarity index 100% rename from src/ops/sources/shared/pattern_matcher.rs rename to rust/cocoindex/src/ops/sources/shared/pattern_matcher.rs diff --git a/src/ops/targets/kuzu.rs b/rust/cocoindex/src/ops/targets/kuzu.rs similarity index 100% rename from src/ops/targets/kuzu.rs rename to rust/cocoindex/src/ops/targets/kuzu.rs diff --git a/src/ops/targets/mod.rs b/rust/cocoindex/src/ops/targets/mod.rs similarity index 100% rename from src/ops/targets/mod.rs rename to rust/cocoindex/src/ops/targets/mod.rs diff --git a/src/ops/targets/neo4j.rs b/rust/cocoindex/src/ops/targets/neo4j.rs similarity index 100% rename from src/ops/targets/neo4j.rs rename to rust/cocoindex/src/ops/targets/neo4j.rs diff --git a/src/ops/targets/postgres.rs b/rust/cocoindex/src/ops/targets/postgres.rs similarity index 100% rename from src/ops/targets/postgres.rs rename to rust/cocoindex/src/ops/targets/postgres.rs diff --git a/src/ops/targets/qdrant.rs b/rust/cocoindex/src/ops/targets/qdrant.rs similarity index 100% rename from src/ops/targets/qdrant.rs rename to rust/cocoindex/src/ops/targets/qdrant.rs diff --git a/src/ops/targets/shared/mod.rs b/rust/cocoindex/src/ops/targets/shared/mod.rs similarity index 100% rename from src/ops/targets/shared/mod.rs rename to rust/cocoindex/src/ops/targets/shared/mod.rs diff --git a/src/ops/targets/shared/property_graph.rs b/rust/cocoindex/src/ops/targets/shared/property_graph.rs similarity index 100% rename from src/ops/targets/shared/property_graph.rs rename to rust/cocoindex/src/ops/targets/shared/property_graph.rs diff --git a/src/ops/targets/shared/table_columns.rs b/rust/cocoindex/src/ops/targets/shared/table_columns.rs similarity index 100% rename from src/ops/targets/shared/table_columns.rs rename to rust/cocoindex/src/ops/targets/shared/table_columns.rs diff --git a/src/prelude.rs b/rust/cocoindex/src/prelude.rs similarity index 100% rename from src/prelude.rs rename to rust/cocoindex/src/prelude.rs diff --git a/src/py/convert.rs b/rust/cocoindex/src/py/convert.rs similarity index 100% rename from src/py/convert.rs rename to rust/cocoindex/src/py/convert.rs diff --git a/src/py/future.rs b/rust/cocoindex/src/py/future.rs similarity index 100% rename from src/py/future.rs rename to rust/cocoindex/src/py/future.rs diff --git a/src/py/mod.rs b/rust/cocoindex/src/py/mod.rs similarity index 100% rename from src/py/mod.rs rename to rust/cocoindex/src/py/mod.rs diff --git a/src/server.rs b/rust/cocoindex/src/server.rs similarity index 100% rename from src/server.rs rename to rust/cocoindex/src/server.rs diff --git a/src/service/error.rs b/rust/cocoindex/src/service/error.rs similarity index 100% rename from src/service/error.rs rename to rust/cocoindex/src/service/error.rs diff --git a/src/service/flows.rs b/rust/cocoindex/src/service/flows.rs similarity index 100% rename from src/service/flows.rs rename to rust/cocoindex/src/service/flows.rs diff --git a/src/service/mod.rs b/rust/cocoindex/src/service/mod.rs similarity index 100% rename from src/service/mod.rs rename to rust/cocoindex/src/service/mod.rs diff --git a/src/service/query_handler.rs b/rust/cocoindex/src/service/query_handler.rs similarity index 100% rename from src/service/query_handler.rs rename to rust/cocoindex/src/service/query_handler.rs diff --git a/src/settings.rs b/rust/cocoindex/src/settings.rs similarity index 100% rename from src/settings.rs rename to rust/cocoindex/src/settings.rs diff --git a/src/setup/auth_registry.rs b/rust/cocoindex/src/setup/auth_registry.rs similarity index 100% rename from src/setup/auth_registry.rs rename to rust/cocoindex/src/setup/auth_registry.rs diff --git a/src/setup/components.rs b/rust/cocoindex/src/setup/components.rs similarity index 100% rename from src/setup/components.rs rename to rust/cocoindex/src/setup/components.rs diff --git a/src/setup/db_metadata.rs b/rust/cocoindex/src/setup/db_metadata.rs similarity index 100% rename from src/setup/db_metadata.rs rename to rust/cocoindex/src/setup/db_metadata.rs diff --git a/src/setup/driver.rs b/rust/cocoindex/src/setup/driver.rs similarity index 100% rename from src/setup/driver.rs rename to rust/cocoindex/src/setup/driver.rs diff --git a/src/setup/flow_features.rs b/rust/cocoindex/src/setup/flow_features.rs similarity index 100% rename from src/setup/flow_features.rs rename to rust/cocoindex/src/setup/flow_features.rs diff --git a/src/setup/mod.rs b/rust/cocoindex/src/setup/mod.rs similarity index 100% rename from src/setup/mod.rs rename to rust/cocoindex/src/setup/mod.rs diff --git a/src/setup/states.rs b/rust/cocoindex/src/setup/states.rs similarity index 100% rename from src/setup/states.rs rename to rust/cocoindex/src/setup/states.rs diff --git a/src/utils/batching.rs b/rust/cocoindex/src/utils/batching.rs similarity index 100% rename from src/utils/batching.rs rename to rust/cocoindex/src/utils/batching.rs diff --git a/src/utils/bytes_decode.rs b/rust/cocoindex/src/utils/bytes_decode.rs similarity index 100% rename from src/utils/bytes_decode.rs rename to rust/cocoindex/src/utils/bytes_decode.rs diff --git a/src/utils/concur_control.rs b/rust/cocoindex/src/utils/concur_control.rs similarity index 100% rename from src/utils/concur_control.rs rename to rust/cocoindex/src/utils/concur_control.rs diff --git a/src/utils/db.rs b/rust/cocoindex/src/utils/db.rs similarity index 100% rename from src/utils/db.rs rename to rust/cocoindex/src/utils/db.rs diff --git a/src/utils/deser.rs b/rust/cocoindex/src/utils/deser.rs similarity index 100% rename from src/utils/deser.rs rename to rust/cocoindex/src/utils/deser.rs diff --git a/src/utils/fingerprint.rs b/rust/cocoindex/src/utils/fingerprint.rs similarity index 100% rename from src/utils/fingerprint.rs rename to rust/cocoindex/src/utils/fingerprint.rs diff --git a/src/utils/http.rs b/rust/cocoindex/src/utils/http.rs similarity index 100% rename from src/utils/http.rs rename to rust/cocoindex/src/utils/http.rs diff --git a/src/utils/immutable.rs b/rust/cocoindex/src/utils/immutable.rs similarity index 100% rename from src/utils/immutable.rs rename to rust/cocoindex/src/utils/immutable.rs diff --git a/src/utils/mod.rs b/rust/cocoindex/src/utils/mod.rs similarity index 100% rename from src/utils/mod.rs rename to rust/cocoindex/src/utils/mod.rs diff --git a/src/utils/retryable.rs b/rust/cocoindex/src/utils/retryable.rs similarity index 100% rename from src/utils/retryable.rs rename to rust/cocoindex/src/utils/retryable.rs diff --git a/src/utils/str_sanitize.rs b/rust/cocoindex/src/utils/str_sanitize.rs similarity index 100% rename from src/utils/str_sanitize.rs rename to rust/cocoindex/src/utils/str_sanitize.rs diff --git a/src/utils/yaml_ser.rs b/rust/cocoindex/src/utils/yaml_ser.rs similarity index 100% rename from src/utils/yaml_ser.rs rename to rust/cocoindex/src/utils/yaml_ser.rs From 72ea186b7334c782e57736831e7172e127cfafd3 Mon Sep 17 00:00:00 2001 From: Jiangzhou He Date: Sat, 8 Nov 2025 18:52:21 -0800 Subject: [PATCH 2/3] workflow: change `Cargo.toml` location to update version --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f91d9d1e..ae6a2f7b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,8 +24,8 @@ jobs: - run: ./.github/scripts/update_version.sh - uses: actions/upload-artifact@v4 with: - name: Cargo.toml - path: Cargo.toml + name: rust/cocoindex/Cargo.toml + path: rust/cocoindex/Cargo.toml generate-3p-notices: runs-on: ubuntu-latest From 2d6a057f58956374c1f901a51e59a0f5ac793c23 Mon Sep 17 00:00:00 2001 From: Jiangzhou He Date: Sat, 8 Nov 2025 19:22:57 -0800 Subject: [PATCH 3/3] fix: put version and other package metadata at root `Cargo.toml` --- .github/workflows/release.yml | 4 ++-- Cargo.toml | 6 ++++++ rust/cocoindex/Cargo.toml | 10 ++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ae6a2f7b..f91d9d1e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,8 +24,8 @@ jobs: - run: ./.github/scripts/update_version.sh - uses: actions/upload-artifact@v4 with: - name: rust/cocoindex/Cargo.toml - path: rust/cocoindex/Cargo.toml + name: Cargo.toml + path: Cargo.toml generate-3p-notices: runs-on: ubuntu-latest diff --git a/Cargo.toml b/Cargo.toml index 931cbe07..d0f64928 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,12 @@ members = ["rust/cocoindex"] resolver = "2" +[workspace.package] +version = "999.0.0" +edition = "2024" +rust-version = "1.89" +license = "Apache-2.0" + [workspace.dependencies] pyo3 = { version = "0.25.1", features = [ "abi3-py311", diff --git a/rust/cocoindex/Cargo.toml b/rust/cocoindex/Cargo.toml index fe7c3e81..0db5ad56 100644 --- a/rust/cocoindex/Cargo.toml +++ b/rust/cocoindex/Cargo.toml @@ -1,11 +1,9 @@ [package] name = "cocoindex" -# Version used for local development is always higher than others to take precedence. -# Will be overridden for specific release versions. -version = "999.0.0" -edition = "2024" -rust-version = "1.89" -license = "Apache-2.0" +version = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } +license = { workspace = true } [lib] name = "cocoindex_engine"