diff --git a/Cargo.toml b/Cargo.toml index b329f980..d0f64928 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,26 +1,14 @@ -[package] -name = "cocoindex" -# Version used for local development is always higher than others to take precedence. -# Will be overridden for specific release versions. +[workspace] +members = ["rust/cocoindex"] +resolver = "2" + +[workspace.package] version = "999.0.0" edition = "2024" rust-version = "1.89" license = "Apache-2.0" -[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 +145,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..0db5ad56 --- /dev/null +++ b/rust/cocoindex/Cargo.toml @@ -0,0 +1,121 @@ +[package] +name = "cocoindex" +version = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } +license = { workspace = true } + +[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