hyperstreamdb 0.5.3__tar.gz → 0.5.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. hyperstreamdb-0.5.4/.cargo/audit.toml +11 -0
  2. hyperstreamdb-0.5.4/ADMIN_CLI.md +59 -0
  3. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/CONTRIBUTING.md +1 -1
  4. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Cargo.lock +179 -18
  5. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Cargo.toml +7 -1
  6. hyperstreamdb-0.5.4/ELASTICSEARCH_INTEGRATION_PLAN.md +121 -0
  7. hyperstreamdb-0.5.4/GETTING_STARTED.md +118 -0
  8. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/PKG-INFO +52 -92
  9. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/README.md +51 -91
  10. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/SECURITY.md +7 -12
  11. hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_173334.json +14 -0
  12. hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_173334.md +7 -0
  13. hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_192646.json +14 -0
  14. hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260620_192646.md +7 -0
  15. hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260623_173013.json +14 -0
  16. hyperstreamdb-0.5.4/benchmark_results/full_scan_baseline_20260623_173013.md +7 -0
  17. hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_173332.json +14 -0
  18. hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_173332.md +7 -0
  19. hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_192645.json +14 -0
  20. hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260620_192645.md +7 -0
  21. hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260623_173011.json +14 -0
  22. hyperstreamdb-0.5.4/benchmark_results/high_selectivity_filter_20260623_173011.md +7 -0
  23. hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_173300.json +14 -0
  24. hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_173300.md +7 -0
  25. hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_192611.json +14 -0
  26. hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260620_192611.md +7 -0
  27. hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260623_172935.json +14 -0
  28. hyperstreamdb-0.5.4/benchmark_results/multi_filter_vector_20260623_172935.md +7 -0
  29. hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_173332.json +14 -0
  30. hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_173332.md +7 -0
  31. hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_192644.json +14 -0
  32. hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260620_192644.md +7 -0
  33. hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260623_173011.json +14 -0
  34. hyperstreamdb-0.5.4/benchmark_results/point_lookup_20260623_173011.md +7 -0
  35. hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_173303.json +7 -0
  36. hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_173303.md +7 -0
  37. hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_192614.json +7 -0
  38. hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260620_192614.md +7 -0
  39. hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260623_172938.json +7 -0
  40. hyperstreamdb-0.5.4/benchmark_results/post_vs_pre_filter_20260623_172938.md +7 -0
  41. hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_173333.json +14 -0
  42. hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_173333.md +7 -0
  43. hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_192646.json +14 -0
  44. hyperstreamdb-0.5.4/benchmark_results/range_query_20260620_192646.md +7 -0
  45. hyperstreamdb-0.5.4/benchmark_results/range_query_20260623_173012.json +14 -0
  46. hyperstreamdb-0.5.4/benchmark_results/range_query_20260623_173012.md +7 -0
  47. hyperstreamdb-0.5.4/clippy_output.txt +502 -0
  48. hyperstreamdb-0.5.4/fix_deprecated.py +20 -0
  49. hyperstreamdb-0.5.4/src/bin/hyperstreamdb-admin.rs +107 -0
  50. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/iceberg_rest.rs +1 -1
  51. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/compaction.rs +3 -0
  52. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/ffi.rs +0 -1
  53. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/manifest.rs +2 -2
  54. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/types.rs +1 -1
  55. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/gpu.rs +24 -13
  56. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/hnswio.rs +2 -2
  57. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/libext.rs +1 -0
  58. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/mod.rs +1 -0
  59. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/lock.rs +138 -51
  60. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/commit.rs +3 -9
  61. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/load.rs +1 -1
  62. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/schema.rs +1 -4
  63. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/mod.rs +1 -0
  64. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/filter.rs +7 -1
  65. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/mod.rs +5 -3
  66. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/write.rs +1 -1
  67. hyperstreamdb-0.5.4/src/core/telemetry.rs +26 -0
  68. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/lib.rs +11 -0
  69. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/helpers.rs +3 -1
  70. hyperstreamdb-0.5.4/tests/verify_admin_cli.sh +20 -0
  71. hyperstreamdb-0.5.3/.cargo/audit.toml +0 -10
  72. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.env.example +0 -0
  73. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.gitattributes +0 -0
  74. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.gitignore +0 -0
  75. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.hypothesis/constants/32b327793848e7d8 +0 -0
  76. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.hypothesis/constants/67b0a8ccf18bf5d2 +0 -0
  77. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.hypothesis/constants/84828557b4ee7be4 +0 -0
  78. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.instructions.md +0 -0
  79. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -0
  80. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.qwen/settings.json +0 -0
  81. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/.qwen/settings.json.orig +0 -0
  82. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/CHANGELOG.md +0 -0
  83. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/CNAME +0 -0
  84. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Dockerfile +0 -0
  85. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/HyperStreamDB.png +0 -0
  86. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/LICENSE-APACHE +0 -0
  87. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/LICENSE-MIT +0 -0
  88. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/ROADMAP.md +0 -0
  89. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/RUN_COMPLIANCE_TESTS.sh +0 -0
  90. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/STEERING.md +0 -0
  91. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/THIRDPARTY_NOTICES.md +0 -0
  92. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/Untitled.ipynb +0 -0
  93. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benches/bench_table.rs +0 -0
  94. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benches/performance.rs +0 -0
  95. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/BENCHMARK_REPORT.md +0 -0
  96. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/benchmark_charts.png +0 -0
  97. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/benchmark_results.csv +0 -0
  98. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/concurrent_queries_20260409_214245.json +0 -0
  99. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/concurrent_queries_20260409_214245.md +0 -0
  100. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_search_comparison_20260409_222607.json +0 -0
  101. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_search_comparison_20260409_222607.md +0 -0
  102. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_214355.json +0 -0
  103. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_214355.md +0 -0
  104. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_220418.json +0 -0
  105. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_220418.md +0 -0
  106. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_222053.json +0 -0
  107. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_222053.md +0 -0
  108. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_225907.json +0 -0
  109. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/filtered_vector_search_20260409_225907.md +0 -0
  110. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/full_scan_baseline_20260409_222303.json +0 -0
  111. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/full_scan_baseline_20260409_222303.md +0 -0
  112. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/high_selectivity_filter_20260409_222302.json +0 -0
  113. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/high_selectivity_filter_20260409_222302.md +0 -0
  114. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/ingestion_comparison_20260409_222516.json +0 -0
  115. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/ingestion_comparison_20260409_222516.md +0 -0
  116. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_214428.json +0 -0
  117. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_214428.md +0 -0
  118. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_220450.json +0 -0
  119. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_220450.md +0 -0
  120. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_222131.json +0 -0
  121. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_222131.md +0 -0
  122. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_225938.json +0 -0
  123. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_225938.md +0 -0
  124. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_231713.json +0 -0
  125. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/multi_filter_vector_20260409_231713.md +0 -0
  126. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_214501.json +0 -0
  127. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_214501.md +0 -0
  128. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_220524.json +0 -0
  129. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_220524.md +0 -0
  130. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_222204.json +0 -0
  131. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_222204.md +0 -0
  132. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_230010.json +0 -0
  133. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/post_vs_pre_filter_20260409_230010.md +0 -0
  134. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/query_comparison_20260409_222541.json +0 -0
  135. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/query_comparison_20260409_222541.md +0 -0
  136. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/range_query_20260409_222302.json +0 -0
  137. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/range_query_20260409_222302.md +0 -0
  138. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_filtered_high_selectivity_20260409_214144.json +0 -0
  139. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_filtered_high_selectivity_20260409_214144.md +0 -0
  140. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_unfiltered_20260409_214028.json +0 -0
  141. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/benchmark_results/search_unfiltered_20260409_214028.md +0 -0
  142. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/book.toml +0 -0
  143. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/build-connectors.sh +0 -0
  144. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/build.rs +0 -0
  145. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/check_iceberg_compliance.py +0 -0
  146. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/clippy.toml +0 -0
  147. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/deny.toml +0 -0
  148. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose-hive.yml +0 -0
  149. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose-minio-nessie.yml +0 -0
  150. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose.production.yml +0 -0
  151. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docker-compose.yml +0 -0
  152. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/.nojekyll +0 -0
  153. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/BENCHMARKING.md +0 -0
  154. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/COMPREHENSIVE_GUIDE.md +0 -0
  155. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/CONCURRENCY.md +0 -0
  156. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/CONFIGURATION.md +0 -0
  157. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/DORIS_OPTIMIZATION_PATTERNS.md +0 -0
  158. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/GPU_SETUP_GUIDE.md +0 -0
  159. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/ICEBERG_V2_V3_API.md +0 -0
  160. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/INSTALLATION.md +0 -0
  161. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/PGVECTOR_SQL_GUIDE.md +0 -0
  162. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/PYTHON_VECTOR_API.md +0 -0
  163. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/VECTOR_CONFIGURATION.md +0 -0
  164. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/api_reference.md +0 -0
  165. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/architecture.md +0 -0
  166. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/catalog_usage.md +0 -0
  167. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/index.md +0 -0
  168. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/README.md +0 -0
  169. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/java_jni.md +0 -0
  170. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/python.md +0 -0
  171. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/spark.md +0 -0
  172. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/integrations/trino.md +0 -0
  173. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/monitoring.md +0 -0
  174. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/requirements.txt +0 -0
  175. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/_static/HyperStreamDB.png +0 -0
  176. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/api/python.rst +0 -0
  177. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/api/rust.rst +0 -0
  178. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/conf.py +0 -0
  179. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/index.rst +0 -0
  180. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/source/roadmap.md +0 -0
  181. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/docs/task_status.md +0 -0
  182. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/hive-config/hive-site.xml +0 -0
  183. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/marketing_site/index.html +0 -0
  184. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/marketing_site/styles.css +0 -0
  185. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/proptest-regressions/core/index/gpu.txt +0 -0
  186. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/proptest-regressions/core/sql/vector_literal.txt +0 -0
  187. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/proptest-regressions/core/sql/vector_udf.txt +0 -0
  188. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/pyproject.toml +0 -0
  189. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/python/hyperstreamdb/__init__.py +0 -0
  190. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/python/hyperstreamdb/embeddings.py +0 -0
  191. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/recovered_plan.txt +0 -0
  192. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/rust-toolchain.toml +0 -0
  193. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/fix_nb.py +0 -0
  194. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/split_table.py +0 -0
  195. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_cache.py +0 -0
  196. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_reader.py +0 -0
  197. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_schema_patch.py +0 -0
  198. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/scripts/update_schema_patch2.py +0 -0
  199. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/.bloop/bloop.settings.json +0 -0
  200. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/.bloop/spark-hyperstream-test.json +0 -0
  201. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/.bloop/spark-hyperstream.json +0 -0
  202. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/pom.xml +0 -0
  203. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/DefaultSource.java +0 -0
  204. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartition.java +0 -0
  205. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReader.java +0 -0
  206. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReaderFactory.java +0 -0
  207. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamScanBuilder.java +0 -0
  208. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamTable.java +0 -0
  209. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/spark-hyperstream/src/test/java/com/hyperstreamdb/spark/SparkConnectorTest.java +0 -0
  210. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/gateway.rs +0 -0
  211. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/hdb.rs +0 -0
  212. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/probe_datafusion.rs +0 -0
  213. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/setup_test_data.rs +0 -0
  214. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/bin/verify_layered_indexing.rs +0 -0
  215. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/cache.rs +0 -0
  216. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/config.rs +0 -0
  217. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/glue.rs +0 -0
  218. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/hive.rs +0 -0
  219. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/jdbc.rs +0 -0
  220. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/mod.rs +0 -0
  221. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/nessie.rs +0 -0
  222. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/rest.rs +0 -0
  223. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/catalog/unity.rs +0 -0
  224. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/clustering.rs +0 -0
  225. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/embeddings.rs +0 -0
  226. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/error.rs +0 -0
  227. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/delete.rs +0 -0
  228. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/iceberg_delete.rs +0 -0
  229. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/mod.rs +0 -0
  230. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/schema.rs +0 -0
  231. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/transform.rs +0 -0
  232. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/value.rs +0 -0
  233. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/iceberg/writer.rs +0 -0
  234. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/build_inverted.rs +0 -0
  235. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/build_vector.rs +0 -0
  236. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/cosine_distance.cu +0 -0
  237. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/hamming_distance.cu +0 -0
  238. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/inner_product.cu +0 -0
  239. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/jaccard_distance.cu +0 -0
  240. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/kmeans_assignment.cu +0 -0
  241. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/l1_distance.cu +0 -0
  242. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/cuda/l2_distance.cu +0 -0
  243. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/distance.rs +0 -0
  244. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_ivf.rs +0 -0
  245. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/annhdf5.rs +0 -0
  246. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/api.rs +0 -0
  247. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/dist.rs +0 -0
  248. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/flatten.rs +0 -0
  249. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/hnsw.rs +0 -0
  250. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/prelude.rs +0 -0
  251. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/hnsw_rs/test.rs +0 -0
  252. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/ivf.rs +0 -0
  253. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/memory.rs +0 -0
  254. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mod.rs +0 -0
  255. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/cosine_distance.metal +0 -0
  256. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/hamming_distance.metal +0 -0
  257. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/inner_product.metal +0 -0
  258. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/jaccard_distance.metal +0 -0
  259. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/kmeans_assignment.metal +0 -0
  260. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/l1_distance.metal +0 -0
  261. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/mps/l2_distance.metal +0 -0
  262. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/cosine_distance.cl +0 -0
  263. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/hamming_distance.cl +0 -0
  264. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/inner_product.cl +0 -0
  265. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/jaccard_distance.cl +0 -0
  266. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/kmeans_assignment.cl +0 -0
  267. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/l1_distance.cl +0 -0
  268. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/opencl/l2_distance.cl +0 -0
  269. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/pq.rs +0 -0
  270. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/tokenizer.rs +0 -0
  271. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/turboquant.rs +0 -0
  272. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/index/wgpu_kernel.wgsl +0 -0
  273. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/license.rs +0 -0
  274. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/maintenance.rs +0 -0
  275. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager/partition.rs +0 -0
  276. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/manager.rs +0 -0
  277. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/mod.rs +0 -0
  278. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/manifest/types.rs +0 -0
  279. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/merge.rs +0 -0
  280. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/metadata.rs +0 -0
  281. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/nessie.rs +0 -0
  282. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner/filter.rs +0 -0
  283. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner/pruning.rs +0 -0
  284. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner/vector_search.rs +0 -0
  285. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/planner.rs +0 -0
  286. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/puffin.rs +0 -0
  287. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/query.rs +0 -0
  288. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/delete.rs +0 -0
  289. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/mod.rs +0 -0
  290. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/reader/scan.rs +0 -0
  291. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/search/mod.rs +0 -0
  292. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/search/rrf.rs +0 -0
  293. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/segment.rs +0 -0
  294. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/binary.rs +0 -0
  295. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/dense.rs +0 -0
  296. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/mod.rs +0 -0
  297. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/literal/sparse.rs +0 -0
  298. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/mod.rs +0 -0
  299. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/config.rs +0 -0
  300. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/index_join.rs +0 -0
  301. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/mod.rs +0 -0
  302. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/plan_detection.rs +0 -0
  303. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/plan_rewriter.rs +0 -0
  304. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer/vector_search/sort_expr_parser.rs +0 -0
  305. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/optimizer.rs +0 -0
  306. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/pgvector_rewriter.rs +0 -0
  307. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan/index_join.rs +0 -0
  308. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan/vector_merge.rs +0 -0
  309. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan/vector_scan.rs +0 -0
  310. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/physical_plan.rs +0 -0
  311. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/session.rs +0 -0
  312. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/aggregate.rs +0 -0
  313. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/distance.rs +0 -0
  314. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/mod.rs +0 -0
  315. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/sparse.rs +0 -0
  316. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/udf/transform.rs +0 -0
  317. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_literal.rs +0 -0
  318. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_operators.rs +0 -0
  319. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/aggregate.rs +0 -0
  320. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/distance.rs +0 -0
  321. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/mod.rs +0 -0
  322. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/sparse.rs +0 -0
  323. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf/transform.rs +0 -0
  324. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/sql/vector_udf.rs +0 -0
  325. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/storage.rs +0 -0
  326. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/builder.rs +0 -0
  327. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/fluent.rs +0 -0
  328. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/index_config.rs +0 -0
  329. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/primary_key.rs +0 -0
  330. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/read.rs +0 -0
  331. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/schema.rs +0 -0
  332. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/state.rs +0 -0
  333. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/table/stats.rs +0 -0
  334. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/core/wal.rs +0 -0
  335. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/enterprise/continuous_indexing.rs +0 -0
  336. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/enterprise/mod.rs +0 -0
  337. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/index.rs.old +0 -0
  338. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/glue.rs +0 -0
  339. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/hive.rs +0 -0
  340. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/jdbc.rs +0 -0
  341. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/mod.rs +0 -0
  342. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/nessie.rs +0 -0
  343. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/rest.rs +0 -0
  344. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/catalog/unity.rs +0 -0
  345. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/manifest.rs +0 -0
  346. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/mod.rs +0 -0
  347. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/schema.rs +0 -0
  348. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/session.rs +0 -0
  349. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/stats.rs +0 -0
  350. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python/table.rs +0 -0
  351. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python_binding.rs +0 -0
  352. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python_distance.rs +0 -0
  353. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/python_gpu_context.rs +0 -0
  354. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/telemetry/metrics.rs +0 -0
  355. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/telemetry/mod.rs +0 -0
  356. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/src/telemetry/tracing.rs +0 -0
  357. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/all_types_index_test.rs +0 -0
  358. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/bin/generate_iceberg_manifests.rs +0 -0
  359. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/bin/verify_iceberg_read_check.rs +0 -0
  360. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/check_mmh3.py +0 -0
  361. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/download_nyc_taxi.sh +0 -0
  362. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/generate_embeddings.py +0 -0
  363. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/generate_wikipedia.py +0 -0
  364. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/data/start_nessie.sh +0 -0
  365. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/datafusion_rust_test.rs +0 -0
  366. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/debug_murmur3.rs +0 -0
  367. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/fuzz_murmur3.rs +0 -0
  368. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/gpu_test_helpers.rs +0 -0
  369. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/integration_test_hnsw_ivf_native.rs +0 -0
  370. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/performance/README.md +0 -0
  371. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/prototype_merge.py +0 -0
  372. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/python/verify_docstrings.py +0 -0
  373. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/python/verify_fluent_api.py +0 -0
  374. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/python/verify_unified_ingest.py +0 -0
  375. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/schema_evolution_test.rs +0 -0
  376. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/stability.rs +0 -0
  377. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_all_algos.py +0 -0
  378. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_catalog_commit.rs +0 -0
  379. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_compliance.rs +0 -0
  380. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_delete_correctness.rs +0 -0
  381. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_python_delete.sh +0 -0
  382. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest.sh +0 -0
  383. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_create.sh +0 -0
  384. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_delete.sh +0 -0
  385. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_remove_index.sh +0 -0
  386. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_iceberg_rest_update.sh +0 -0
  387. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_metadata_creation.rs +0 -0
  388. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_mor_reads.rs +0 -0
  389. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_mor_writes.rs +0 -0
  390. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_partition_transforms.rs +0 -0
  391. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_partitioned_writes.rs +0 -0
  392. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_puffin_index.sh +0 -0
  393. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_rest_updates.sh +0 -0
  394. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/tests/verify_schema_compat.rs +0 -0
  395. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/.DS_Store +0 -0
  396. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/glue_catalog.properties +0 -0
  397. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/hyperstreamdb.properties +0 -0
  398. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/iceberg.properties +0 -0
  399. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/iceberg_hive.properties +0 -0
  400. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/memory.properties +0 -0
  401. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/catalog/postgres.properties +0 -0
  402. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/config.properties +0 -0
  403. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/entrypoint.sh +0 -0
  404. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/jvm.config +0 -0
  405. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config/node.properties +0 -0
  406. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-config.zip +0 -0
  407. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/pom.xml +0 -0
  408. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBColumnHandle.java +0 -0
  409. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBConnectorFactory.java +0 -0
  410. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBMetadata.java +0 -0
  411. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSource.java +0 -0
  412. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSourceProvider.java +0 -0
  413. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPlugin.java +0 -0
  414. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplit.java +0 -0
  415. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplitManager.java +0 -0
  416. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBTableHandle.java +0 -0
  417. {hyperstreamdb-0.5.3 → hyperstreamdb-0.5.4}/trino-hyperstream/src/test/java/com/hyperstreamdb/trino/TrinoConnectorTest.java +0 -0
@@ -0,0 +1,11 @@
1
+ [advisories]
2
+ ignore = [
3
+ "RUSTSEC-2026-0104",
4
+ "RUSTSEC-2026-0099",
5
+ "RUSTSEC-2026-0098",
6
+ "RUSTSEC-2026-0097",
7
+ "RUSTSEC-2024-0437",
8
+ "RUSTSEC-2026-0177",
9
+ "RUSTSEC-2026-0176",
10
+ "RUSTSEC-2023-0071"
11
+ ]
@@ -0,0 +1,59 @@
1
+ # HyperStreamDB Admin CLI
2
+
3
+ `hyperstreamdb-admin` is the official administrative tooling for HyperStreamDB. It provides cluster operators with safe, easy-to-use commands to manage storage, optimize performance, and clean up historical data.
4
+
5
+ ## Installation / Building
6
+ If you are compiling from source, the admin CLI is built alongside the main engine:
7
+ ```bash
8
+ cargo build --release --bin hyperstreamdb-admin
9
+ ```
10
+
11
+ The compiled binary will be located at `target/release/hyperstreamdb-admin`.
12
+
13
+ ## Commands
14
+
15
+ ### 1. `compact`
16
+ Over time, continuous ingestion can lead to fragmentation—creating hundreds or thousands of small data files (often called the "small files problem"). The `compact` command merges these small files into larger, optimized files. This significantly improves query performance by reducing metadata overhead and maximizing the efficiency of vectorized scans.
17
+
18
+ **Usage:**
19
+ ```bash
20
+ hyperstreamdb-admin compact --uri <TABLE_URI> [OPTIONS]
21
+ ```
22
+
23
+ **Options:**
24
+ - `--uri`, `-u`: **(Required)** The storage URI of the table you want to compact. (e.g., `file:///tmp/hdb`, `s3://my-bucket/table`)
25
+ - `--target-file-size`: **(Optional)** The ideal size for the compacted data files. The CLI accepts human-readable string values like `64MB`, `1GB`, `512K`. The default is `64MB`.
26
+
27
+ **Example:**
28
+ ```bash
29
+ hyperstreamdb-admin compact --uri "s3://production-data/events_table" --target-file-size 128MB
30
+ ```
31
+
32
+ ### 2. `vacuum`
33
+ HyperStreamDB relies on Multi-Version Concurrency Control (MVCC) and copy-on-write semantics. As data is updated, deleted, or compacted, old files are unlinked from the active manifest but remain on disk to allow time-travel queries and safe rollback.
34
+
35
+ The `vacuum` command permanently deletes these unreferenced historical files to reclaim physical storage space.
36
+
37
+ > [!WARNING]
38
+ > Running vacuum is irreversible. You will not be able to time-travel to versions older than the retention limit once vacuum completes.
39
+
40
+ **Usage:**
41
+ ```bash
42
+ hyperstreamdb-admin vacuum --uri <TABLE_URI> [OPTIONS]
43
+ ```
44
+
45
+ **Options:**
46
+ - `--uri`, `-u`: **(Required)** The storage URI of the table you want to vacuum.
47
+ - `--retain-versions`: **(Optional)** The number of historical manifest versions to keep. Any unreferenced data file not tied to the kept versions will be permanently deleted. Default is `10`.
48
+
49
+ **Example:**
50
+ ```bash
51
+ hyperstreamdb-admin vacuum --uri "s3://production-data/events_table" --retain-versions 5
52
+ ```
53
+
54
+ ## E2E Testing
55
+ The CLI is strictly tested for regressions. You can run the administrative automated bash test locally using:
56
+ ```bash
57
+ ./tests/verify_admin_cli.sh
58
+ ```
59
+ This test spins up a mock dataset, runs a compaction pass, and successfully vacuums the resulting orphaned files.
@@ -12,7 +12,7 @@ Before contributing, please read [STEERING.md](STEERING.md) for our development
12
12
 
13
13
  ### Prerequisites
14
14
 
15
- - **Rust** (stable, 1.75+) — install via [rustup](https://rustup.rs/)
15
+ - **Rust** (stable, 1.80+) — install via [rustup](https://rustup.rs/)
16
16
  - **Python** (3.10–3.14) — for binding development and testing
17
17
  - **Docker** — for integration tests against MinIO and Nessie
18
18
  - **Cargo** and **maturin** — for building Python wheels
@@ -1305,9 +1305,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
1305
1305
 
1306
1306
  [[package]]
1307
1307
  name = "chacha20"
1308
- version = "0.10.0"
1308
+ version = "0.10.1"
1309
1309
  source = "registry+https://github.com/rust-lang/crates.io-index"
1310
- checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
1310
+ checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
1311
1311
  dependencies = [
1312
1312
  "cfg-if",
1313
1313
  "cpufeatures 0.3.0",
@@ -2709,6 +2709,17 @@ dependencies = [
2709
2709
  "pin-project-lite",
2710
2710
  ]
2711
2711
 
2712
+ [[package]]
2713
+ name = "evmap"
2714
+ version = "11.0.0"
2715
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2716
+ checksum = "1b8874945f036109c72242964c1174cf99434e30cfa45bf45fedc983f50046f8"
2717
+ dependencies = [
2718
+ "hashbag",
2719
+ "left-right",
2720
+ "smallvec",
2721
+ ]
2722
+
2712
2723
  [[package]]
2713
2724
  name = "fastrand"
2714
2725
  version = "2.4.1"
@@ -2947,6 +2958,21 @@ dependencies = [
2947
2958
  "slab",
2948
2959
  ]
2949
2960
 
2961
+ [[package]]
2962
+ name = "generator"
2963
+ version = "0.8.9"
2964
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2965
+ checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae"
2966
+ dependencies = [
2967
+ "cc",
2968
+ "cfg-if",
2969
+ "libc",
2970
+ "log",
2971
+ "rustversion",
2972
+ "windows-link",
2973
+ "windows-result",
2974
+ ]
2975
+
2950
2976
  [[package]]
2951
2977
  name = "generic-array"
2952
2978
  version = "0.14.7"
@@ -3147,6 +3173,12 @@ dependencies = [
3147
3173
  "zerocopy",
3148
3174
  ]
3149
3175
 
3176
+ [[package]]
3177
+ name = "hashbag"
3178
+ version = "0.1.13"
3179
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3180
+ checksum = "7040a10f52cba493ddb09926e15d10a9d8a28043708a405931fe4c6f19fac064"
3181
+
3150
3182
  [[package]]
3151
3183
  name = "hashbrown"
3152
3184
  version = "0.12.3"
@@ -3484,7 +3516,7 @@ dependencies = [
3484
3516
 
3485
3517
  [[package]]
3486
3518
  name = "hyperstreamdb"
3487
- version = "0.5.3"
3519
+ version = "0.5.4"
3488
3520
  dependencies = [
3489
3521
  "ahash",
3490
3522
  "anyhow",
@@ -3524,7 +3556,8 @@ dependencies = [
3524
3556
  "lazy_static",
3525
3557
  "log",
3526
3558
  "metal 0.27.0",
3527
- "metrics",
3559
+ "metrics 0.23.1",
3560
+ "metrics-exporter-prometheus",
3528
3561
  "moka",
3529
3562
  "murmur3",
3530
3563
  "num_cpus",
@@ -3864,9 +3897,9 @@ dependencies = [
3864
3897
 
3865
3898
  [[package]]
3866
3899
  name = "js-sys"
3867
- version = "0.3.102"
3900
+ version = "0.3.103"
3868
3901
  source = "registry+https://github.com/rust-lang/crates.io-index"
3869
- checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31"
3902
+ checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102"
3870
3903
  dependencies = [
3871
3904
  "cfg-if",
3872
3905
  "futures-util",
@@ -3899,6 +3932,17 @@ dependencies = [
3899
3932
  "spin",
3900
3933
  ]
3901
3934
 
3935
+ [[package]]
3936
+ name = "left-right"
3937
+ version = "0.11.7"
3938
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3939
+ checksum = "0f0c21e4c8ff95f487fb34e6f9182875f42c84cef966d29216bf115d9bba835a"
3940
+ dependencies = [
3941
+ "crossbeam-utils",
3942
+ "loom",
3943
+ "slab",
3944
+ ]
3945
+
3902
3946
  [[package]]
3903
3947
  name = "lexical-core"
3904
3948
  version = "1.0.6"
@@ -4111,6 +4155,19 @@ version = "0.4.33"
4111
4155
  source = "registry+https://github.com/rust-lang/crates.io-index"
4112
4156
  checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
4113
4157
 
4158
+ [[package]]
4159
+ name = "loom"
4160
+ version = "0.7.2"
4161
+ source = "registry+https://github.com/rust-lang/crates.io-index"
4162
+ checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"
4163
+ dependencies = [
4164
+ "cfg-if",
4165
+ "generator",
4166
+ "scoped-tls",
4167
+ "tracing",
4168
+ "tracing-subscriber",
4169
+ ]
4170
+
4114
4171
  [[package]]
4115
4172
  name = "lru-slab"
4116
4173
  version = "0.1.2"
@@ -4238,6 +4295,56 @@ dependencies = [
4238
4295
  "portable-atomic",
4239
4296
  ]
4240
4297
 
4298
+ [[package]]
4299
+ name = "metrics"
4300
+ version = "0.24.6"
4301
+ source = "registry+https://github.com/rust-lang/crates.io-index"
4302
+ checksum = "89550ee9f79e88fef3119de263694973a8adb26c21d75322164fb8c493039fe2"
4303
+ dependencies = [
4304
+ "portable-atomic",
4305
+ "rapidhash",
4306
+ ]
4307
+
4308
+ [[package]]
4309
+ name = "metrics-exporter-prometheus"
4310
+ version = "0.18.3"
4311
+ source = "registry+https://github.com/rust-lang/crates.io-index"
4312
+ checksum = "1db0d8f1fc9e62caebd0319e11eaec5822b0186c171568f0480b46a0137f9108"
4313
+ dependencies = [
4314
+ "base64 0.22.1",
4315
+ "evmap",
4316
+ "http-body-util",
4317
+ "hyper 1.10.1",
4318
+ "hyper-rustls 0.27.9",
4319
+ "hyper-util",
4320
+ "indexmap 2.14.0",
4321
+ "ipnet",
4322
+ "metrics 0.24.6",
4323
+ "metrics-util",
4324
+ "quanta",
4325
+ "rustls 0.23.41",
4326
+ "thiserror 2.0.18",
4327
+ "tokio",
4328
+ "tracing",
4329
+ ]
4330
+
4331
+ [[package]]
4332
+ name = "metrics-util"
4333
+ version = "0.20.4"
4334
+ source = "registry+https://github.com/rust-lang/crates.io-index"
4335
+ checksum = "96f8722f8562635f92f8ed992f26df0532266eb03d5202607c20c0d7e9745e13"
4336
+ dependencies = [
4337
+ "crossbeam-epoch",
4338
+ "crossbeam-utils",
4339
+ "hashbrown 0.16.1",
4340
+ "metrics 0.24.6",
4341
+ "quanta",
4342
+ "rand 0.9.4",
4343
+ "rand_xoshiro",
4344
+ "rapidhash",
4345
+ "sketches-ddsketch",
4346
+ ]
4347
+
4241
4348
  [[package]]
4242
4349
  name = "mime"
4243
4350
  version = "0.3.17"
@@ -5230,6 +5337,21 @@ version = "0.2.3"
5230
5337
  source = "registry+https://github.com/rust-lang/crates.io-index"
5231
5338
  checksum = "5a651516ddc9168ebd67b24afd085a718be02f8858fe406591b013d101ce2f40"
5232
5339
 
5340
+ [[package]]
5341
+ name = "quanta"
5342
+ version = "0.12.6"
5343
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5344
+ checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7"
5345
+ dependencies = [
5346
+ "crossbeam-utils",
5347
+ "libc",
5348
+ "once_cell",
5349
+ "raw-cpuid",
5350
+ "wasi 0.11.1+wasi-snapshot-preview1",
5351
+ "web-sys",
5352
+ "winapi",
5353
+ ]
5354
+
5233
5355
  [[package]]
5234
5356
  name = "quick-error"
5235
5357
  version = "1.2.3"
@@ -5489,12 +5611,39 @@ dependencies = [
5489
5611
  "rand_core 0.9.5",
5490
5612
  ]
5491
5613
 
5614
+ [[package]]
5615
+ name = "rand_xoshiro"
5616
+ version = "0.7.0"
5617
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5618
+ checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41"
5619
+ dependencies = [
5620
+ "rand_core 0.9.5",
5621
+ ]
5622
+
5492
5623
  [[package]]
5493
5624
  name = "range-alloc"
5494
5625
  version = "0.1.5"
5495
5626
  source = "registry+https://github.com/rust-lang/crates.io-index"
5496
5627
  checksum = "ca45419789ae5a7899559e9512e58ca889e41f04f1f2445e9f4b290ceccd1d08"
5497
5628
 
5629
+ [[package]]
5630
+ name = "rapidhash"
5631
+ version = "4.4.1"
5632
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5633
+ checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59"
5634
+ dependencies = [
5635
+ "rustversion",
5636
+ ]
5637
+
5638
+ [[package]]
5639
+ name = "raw-cpuid"
5640
+ version = "11.6.0"
5641
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5642
+ checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186"
5643
+ dependencies = [
5644
+ "bitflags 2.13.0",
5645
+ ]
5646
+
5498
5647
  [[package]]
5499
5648
  name = "raw-window-handle"
5500
5649
  version = "0.6.2"
@@ -5947,6 +6096,12 @@ dependencies = [
5947
6096
  "windows-sys 0.61.2",
5948
6097
  ]
5949
6098
 
6099
+ [[package]]
6100
+ name = "scoped-tls"
6101
+ version = "1.0.1"
6102
+ source = "registry+https://github.com/rust-lang/crates.io-index"
6103
+ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
6104
+
5950
6105
  [[package]]
5951
6106
  name = "scopeguard"
5952
6107
  version = "1.2.0"
@@ -6169,6 +6324,12 @@ version = "1.0.3"
6169
6324
  source = "registry+https://github.com/rust-lang/crates.io-index"
6170
6325
  checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
6171
6326
 
6327
+ [[package]]
6328
+ name = "sketches-ddsketch"
6329
+ version = "0.3.1"
6330
+ source = "registry+https://github.com/rust-lang/crates.io-index"
6331
+ checksum = "0c6f73aeb92d671e0cc4dca167e59b2deb6387c375391bc99ee743f326994a2b"
6332
+
6172
6333
  [[package]]
6173
6334
  name = "skiplist"
6174
6335
  version = "0.3.0"
@@ -7440,9 +7601,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
7440
7601
 
7441
7602
  [[package]]
7442
7603
  name = "wasm-bindgen"
7443
- version = "0.2.125"
7604
+ version = "0.2.126"
7444
7605
  source = "registry+https://github.com/rust-lang/crates.io-index"
7445
- checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a"
7606
+ checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4"
7446
7607
  dependencies = [
7447
7608
  "cfg-if",
7448
7609
  "once_cell",
@@ -7453,9 +7614,9 @@ dependencies = [
7453
7614
 
7454
7615
  [[package]]
7455
7616
  name = "wasm-bindgen-futures"
7456
- version = "0.4.75"
7617
+ version = "0.4.76"
7457
7618
  source = "registry+https://github.com/rust-lang/crates.io-index"
7458
- checksum = "503b14d284f2c8dac03b819967e155ea753f573586193b2b2c95990cb5d69280"
7619
+ checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d"
7459
7620
  dependencies = [
7460
7621
  "js-sys",
7461
7622
  "wasm-bindgen",
@@ -7463,9 +7624,9 @@ dependencies = [
7463
7624
 
7464
7625
  [[package]]
7465
7626
  name = "wasm-bindgen-macro"
7466
- version = "0.2.125"
7627
+ version = "0.2.126"
7467
7628
  source = "registry+https://github.com/rust-lang/crates.io-index"
7468
- checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d"
7629
+ checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1"
7469
7630
  dependencies = [
7470
7631
  "quote",
7471
7632
  "wasm-bindgen-macro-support",
@@ -7473,9 +7634,9 @@ dependencies = [
7473
7634
 
7474
7635
  [[package]]
7475
7636
  name = "wasm-bindgen-macro-support"
7476
- version = "0.2.125"
7637
+ version = "0.2.126"
7477
7638
  source = "registry+https://github.com/rust-lang/crates.io-index"
7478
- checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd"
7639
+ checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e"
7479
7640
  dependencies = [
7480
7641
  "bumpalo",
7481
7642
  "proc-macro2",
@@ -7486,9 +7647,9 @@ dependencies = [
7486
7647
 
7487
7648
  [[package]]
7488
7649
  name = "wasm-bindgen-shared"
7489
- version = "0.2.125"
7650
+ version = "0.2.126"
7490
7651
  source = "registry+https://github.com/rust-lang/crates.io-index"
7491
- checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f"
7652
+ checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24"
7492
7653
  dependencies = [
7493
7654
  "unicode-ident",
7494
7655
  ]
@@ -7508,9 +7669,9 @@ dependencies = [
7508
7669
 
7509
7670
  [[package]]
7510
7671
  name = "web-sys"
7511
- version = "0.3.102"
7672
+ version = "0.3.103"
7512
7673
  source = "registry+https://github.com/rust-lang/crates.io-index"
7513
- checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d"
7674
+ checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141"
7514
7675
  dependencies = [
7515
7676
  "js-sys",
7516
7677
  "wasm-bindgen",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "hyperstreamdb"
3
- version = "0.5.3"
3
+ version = "0.5.4"
4
4
  edition = "2021"
5
5
  license = "MIT AND Apache-2.0"
6
6
  description = "HyperStreamDB - Serverless Index-Streaming Database with Overlay Indexing and Vector Search"
@@ -35,11 +35,14 @@ enterprise = []
35
35
  python = ["dep:pyo3", "pyo3/extension-module", "dep:numpy", "dep:pythonize", "wgpu", "pollster", "cuda"]
36
36
  java = ["dep:jni"]
37
37
  proptest = []
38
+ observability = ["dep:metrics-exporter-prometheus"]
38
39
 
39
40
  # GPU Acceleration Features
40
41
  wgpu = ["dep:wgpu"]
41
42
  pollster = ["dep:pollster"]
42
43
  cuda = ["dep:cudarc"]
44
+ metrics-exporter-prometheus = ["dep:metrics-exporter-prometheus"]
45
+
43
46
 
44
47
  [dependencies]
45
48
  # core columnar memory format
@@ -134,6 +137,7 @@ regex = "1.10"
134
137
  sha2 = "0.10"
135
138
  wgpu = { version = "0.20.0", optional = true }
136
139
  pollster = { version = "0.4.0", optional = true }
140
+ metrics-exporter-prometheus = { version = "0.18.3", optional = true }
137
141
 
138
142
  [target.'cfg(not(target_os = "macos"))'.dependencies]
139
143
  cudarc = { version = "0.13.0", features = ["driver", "nvrtc", "cuda-12000"], optional = true }
@@ -199,3 +203,5 @@ strip = "debuginfo" # Keep symbols for crash backtraces, strip DWARF fro
199
203
  inherits = "release"
200
204
  lto = "fat" # Cross-crate LTO for max performance (slower builds)
201
205
  codegen-units = 1 # Single unit for LTO effectiveness
206
+ [profile.test]
207
+ debug = 0
@@ -0,0 +1,121 @@
1
+ # Implementation Plan: Elasticsearch-Like Search Engine Layer (Add-On Product)
2
+
3
+ This document outlines the strategy for validating HyperStreamDB's production readiness and building an Elasticsearch-compatible REST API wrapper.
4
+
5
+ The REST API is implemented as a **separate, optional add-on package (`hyperstreamdb-search`)** in the Cargo workspace. This ensures the core library remains lightweight, and users who only need library-level access or FFI bindings do not pull in HTTP dependencies.
6
+
7
+ ---
8
+
9
+ ## Architectural Thesis: Cost-Efficiency & Serverless Over Low-Latency
10
+
11
+ * **Not In-Memory**: Elasticsearch keeps all segments and caches aggressively pinned in RAM to achieve sub-millisecond query execution. This makes it operationally expensive and hard to run in serverless environments.
12
+ * **Target Workload (Website / Doc Search)**: For website search, document indexing, and corporate knowledge bases, query response latencies of **50–200ms** are perfectly acceptable.
13
+ * **Object Storage Native**: By designing for website search, we can load index files (`.hnsw` and `.idx`) and Parquet row groups **on-demand** from object storage (like S3/MinIO) or local disk cache. This enables an extremely cheap, serverless, scale-to-zero operational model.
14
+
15
+ ---
16
+
17
+ ## Step 1: Production Readiness & Quality Validation
18
+
19
+ Before implementing new features, we must establish a production-readiness baseline. This ensures the engine's core is secure, stable, and conforms to standard best practices.
20
+
21
+ ### 1.1 Code Quality & Safety Checks
22
+ - **Security Audit**: Ensure `cargo audit` runs successfully in CI/CD with zero unignored vulnerabilities.
23
+ - **Static Analysis**: Enforce Clippy linting (`cargo clippy --all-targets --all-features`) with zero warnings or errors.
24
+ - **Formatting Standards**: Verify that all Rust files are styled per `cargo fmt`.
25
+ - **Code Test Coverage**: Ensure all Rust core unit and integration tests compile and run to completion (`cargo test --all-targets`).
26
+ - **Python Compatibility**: Run the full Python test suite (`pytest`) to ensure zero regressions in bindings, catalogs, and table reads/writes.
27
+
28
+ ### 1.2 Documentation Readiness Check
29
+ - **API Reference Compilation**: Verify that `cargo doc --no-deps` builds cleanly without warnings or broken intra-doc links.
30
+ - **Getting Started Guide**: Ensure [GETTING_STARTED.md](GETTING_STARTED.md) is up-to-date with current APIs and dependency instructions.
31
+ - **API Coverage**: Confirm all public catalog methods, index structures, and configuration keys are fully documented.
32
+
33
+ ---
34
+
35
+ ## Step 2: Lexical Processing & Search Enhancements (Crate: `hyperstreamdb`)
36
+
37
+ To support Elasticsearch-like search capability, we implement base lexical processing helpers within the core library.
38
+
39
+ ### 2.1 Text Analyzers & Tokenizers
40
+ - **New Module**: `src/core/index/analyzer.rs`
41
+ - **Features**:
42
+ - Lowercase filter.
43
+ - Standard whitespace/punctuation tokenizer.
44
+ - Basic english stop-word filter.
45
+
46
+ ### 2.2 BM25 Relevance Scoring
47
+ - **Implementation**: Calculate Okapi BM25 scores during inverted index lookup:
48
+ $$\text{Score}(D, Q) = \sum_{i=1}^{n} \text{IDF}(q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)}{f(q_i, D) + k_1 \cdot \left(1 - b + b \cdot \frac{|D|}{\text{avgdl}}\right)}$$
49
+ - **Integration**: Integrate the scoring mechanism with the search planner to rank results.
50
+
51
+ ---
52
+
53
+ ## Step 3: The `hyperstreamdb-search` Add-On Crate
54
+
55
+ Create a new package `hyperstreamdb-search` in the Cargo workspace root.
56
+
57
+ ### 3.1 Cargo Setup
58
+ - **New Crate**: [hyperstreamdb-search/Cargo.toml]
59
+ - **Dependencies**: `hyperstreamdb`, `axum`, `tower`, `tower-http`, `tokio`, `serde`, `serde_json`.
60
+
61
+ ### 3.2 Document Ingestion & Schema Evolution
62
+ - **Endpoint**: `POST /<index_name>/_doc`
63
+ - **Dynamic Schema-Mapping**: Parse arbitrary JSON documents, infer field datatypes, and dynamically evolve the target Iceberg schema (without rewriting existing Parquet data).
64
+ - **Buffered Commits**: Route incoming documents to the active Memtable and Write-Ahead Log (WAL) to ensure low write latency.
65
+
66
+ ### 3.3 Search API
67
+ - **Endpoint**: `POST /<index_name>/_search`
68
+ - **Query Parser**: Parse JSON-based query DSL matching standard search criteria:
69
+ - `match` (lexical search using inverted index + BM25).
70
+ - `knn` (HNSW vector search).
71
+ - `filter` (roaring bitmap scalar pre-filtering).
72
+ - **On-Demand Loading**: Fetch the HNSW and inverted indexes from S3/MinIO on-demand, caching them locally in temp storage for future requests.
73
+
74
+ ---
75
+
76
+ ## Step 4: Verification & Benchmarking
77
+
78
+ ### 4.1 Automated Validation
79
+ - Implement a test suite in `hyperstreamdb-search/tests/test_search_api.py` that verifies:
80
+ - Document ingestion via HTTP `POST`.
81
+ - Dynamic table creation and schema evolution.
82
+ - Hybrid lexical + vector search queries.
83
+
84
+ ### 4.2 Benchmark Analysis
85
+ - Measure ingestion throughput (docs/sec) and search latency (p95/p99) against a baseline local Elasticsearch instance, targeting the 50–200ms latency envelope.
86
+
87
+ ---
88
+
89
+ ## Step 5: Positioning: Strengths & Weaknesses vs. Elasticsearch
90
+
91
+ To effectively market this add-on, we must clearly define how it compares to Elasticsearch (ES) so users understand when to choose HyperStreamDB-Search.
92
+
93
+ ### 5.1 Strengths (Competitive Advantages)
94
+ 1. **Ultra-Low TCO (Total Cost of Ownership)**:
95
+ * *Elasticsearch*: Requires expensive instance groups with huge memory allocations (JVM heaps) and fast, hot SSD storage.
96
+ * *HyperStreamDB*: Built for serverless object storage (S3/MinIO). When idle, it costs nothing. Index files (`.hnsw` and `.idx`) are fetched on-demand and cached locally.
97
+ 2. **Open Data Lakehouse Integration**:
98
+ * *Elasticsearch*: Uses a proprietary data format. Getting data out for analysis requires heavy ETLs or expensive scroll APIs.
99
+ * *HyperStreamDB*: Underpinned by Apache Iceberg and Parquet. Other tools (DuckDB, Trino, Spark) can query the exact same files directly in the data lake without moving data.
100
+ 3. **Dynamic Schema Evolution**:
101
+ * *Elasticsearch*: Changing mapping types or structures often requires creating a new index and running a resource-heavy `_reindex` job.
102
+ * *HyperStreamDB*: Inherits Iceberg's native schema evolution, allowing column additions, drops, and renaming instantly.
103
+ 4. **GPU-Accelerated Hybrid Search**:
104
+ * *Elasticsearch*: Vector search runs on standard JVM threads.
105
+ * *HyperStreamDB*: Native vector indexing with SIMD/GPU acceleration for low-cost, high-scale HNSW execution.
106
+
107
+ ### 5.2 Weaknesses (Where ES Wins & How to Position It)
108
+ 1. **Sub-Millisecond Query Latency**:
109
+ * *Elasticsearch*: Sub-5ms response times due to aggressive in-memory caching.
110
+ * *HyperStreamDB*: 50–200ms response times due to S3-native fetch overhead.
111
+ * *Positioning*: Position HyperStreamDB-Search for **website search, document catalogs, and log archives** where 50–200ms is imperceptible to users, but the 90% hosting cost reduction is highly compelling.
112
+ 2. **Ecosystem & Dashboarding**:
113
+ * *Elasticsearch*: Has mature Kibana integration for visualization and dashboarding.
114
+ * *HyperStreamDB*: No proprietary visualization frontend.
115
+ * *Leveraging Grafana, Prometheus & Apache Superset*:
116
+ - **Prometheus Metrics Endpoint**: The `hyperstreamdb-search` REST server will expose a `/metrics` endpoint (via the `prometheus` crate, already a dependency) providing operational telemetry: query latency histograms, ingestion throughput counters, index cache hit rates, and active connection gauges.
117
+ - **Grafana + Prometheus Stack**: Grafana natively scrapes Prometheus endpoints, giving operators real-time operational dashboards (query p95/p99, error rates, ingestion backpressure) out of the box with zero custom code.
118
+ - **Grafana via DuckDB / Trino (Data Dashboards)**: For data-level dashboards, Grafana connects to DuckDB and Trino. Since our tables are standard Iceberg, Grafana can query and visualize HyperStreamDB data with full SQL support.
119
+ - **Apache Superset**: The premier open-source BI tool for data lakes natively supports Trino, Spark, and DuckDB, offering a robust Kibana-like log viewing and dashboarding experience.
120
+ - **Elasticsearch API Compatibility**: By ensuring our REST API matches standard Elasticsearch query endpoints, users can configure **Grafana's built-in Elasticsearch datasource** to query HyperStreamDB directly, providing zero-friction dashboard reuse.
121
+