hyperstreamdb 0.1.10__tar.gz → 0.1.12__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 (227) hide show
  1. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/.gitignore +2 -0
  2. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/Cargo.lock +41 -17
  3. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/Cargo.toml +9 -10
  4. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/PKG-INFO +17 -16
  5. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/README.md +14 -12
  6. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/build.rs +30 -30
  7. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/GPU_SETUP_GUIDE.md +42 -5
  8. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/source/conf.py +13 -1
  9. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/pyproject.toml +6 -6
  10. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/gpu.rs +38 -63
  11. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/python_gpu_context.rs +10 -12
  12. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/.gitattributes +0 -0
  13. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/.hypothesis/constants/32b327793848e7d8 +0 -0
  14. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/.hypothesis/constants/67b0a8ccf18bf5d2 +0 -0
  15. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/.hypothesis/constants/84828557b4ee7be4 +0 -0
  16. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/.instructions.md +0 -0
  17. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/DORIS_OPTIMIZATION_PATTERNS.md +0 -0
  18. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/LICENSE-APACHE +0 -0
  19. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/LICENSE-MIT +0 -0
  20. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/RUN_COMPLIANCE_TESTS.sh +0 -0
  21. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/STEERING.md +0 -0
  22. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/THIRDPARTY_NOTICES.md +0 -0
  23. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/benches/bench_table.rs +0 -0
  24. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/benches/performance.rs +0 -0
  25. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/benchmark_results/BENCHMARK_REPORT.md +0 -0
  26. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/benchmark_results/benchmark_charts.png +0 -0
  27. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/benchmark_results/benchmark_results.csv +0 -0
  28. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/book.toml +0 -0
  29. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/build-connectors.sh +0 -0
  30. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/build_out.txt +0 -0
  31. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/check_iceberg_compliance.py +0 -0
  32. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/clippy_output.txt +0 -0
  33. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docker-compose-minio-nessie.yml +0 -0
  34. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docker-compose.yml +0 -0
  35. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/BENCHMARKING.md +0 -0
  36. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/COMPREHENSIVE_GUIDE.md +0 -0
  37. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/CONCURRENCY.md +0 -0
  38. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/CONFIGURATION.md +0 -0
  39. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/ICEBERG_V2_V3_API.md +0 -0
  40. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/INSTALLATION.md +0 -0
  41. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/PGVECTOR_SQL_GUIDE.md +0 -0
  42. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/PYTHON_VECTOR_API.md +0 -0
  43. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/VECTOR_CONFIGURATION.md +0 -0
  44. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/api_reference.md +0 -0
  45. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/architecture.md +0 -0
  46. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/catalog_usage.md +0 -0
  47. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/index.md +0 -0
  48. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/integrations/README.md +0 -0
  49. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/integrations/java_jni.md +0 -0
  50. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/integrations/python.md +0 -0
  51. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/integrations/spark.md +0 -0
  52. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/integrations/trino.md +0 -0
  53. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/requirements.txt +0 -0
  54. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/source/api/python.rst +0 -0
  55. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/source/api/rust.rst +0 -0
  56. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/source/index.rst +0 -0
  57. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/docs/source/roadmap.md +0 -0
  58. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/fix_cache.patch +0 -0
  59. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/fix_nb.py +0 -0
  60. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/fix_schema.patch +0 -0
  61. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/proptest-regressions/core/index/gpu.txt +0 -0
  62. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/proptest-regressions/core/sql/vector_literal.txt +0 -0
  63. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/proptest-regressions/core/sql/vector_udf.txt +0 -0
  64. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/python/hyperstreamdb/__init__.py +0 -0
  65. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/python/hyperstreamdb/embeddings.py +0 -0
  66. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/.bloop/bloop.settings.json +0 -0
  67. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/.bloop/spark-hyperstream-test.json +0 -0
  68. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/.bloop/spark-hyperstream.json +0 -0
  69. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/pom.xml +0 -0
  70. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/DefaultSource.java +0 -0
  71. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartition.java +0 -0
  72. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReader.java +0 -0
  73. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReaderFactory.java +0 -0
  74. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamScanBuilder.java +0 -0
  75. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamTable.java +0 -0
  76. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/bin/gateway.rs +0 -0
  77. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/bin/hdb.rs +0 -0
  78. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/bin/iceberg_rest.rs +0 -0
  79. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/bin/probe_datafusion.rs +0 -0
  80. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/bin/setup_test_data.rs +0 -0
  81. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/bin/verify_layered_indexing.rs +0 -0
  82. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/cache.rs +0 -0
  83. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/config.rs +0 -0
  84. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/glue.rs +0 -0
  85. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/hive.rs +0 -0
  86. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/jdbc.rs +0 -0
  87. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/mod.rs +0 -0
  88. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/nessie.rs +0 -0
  89. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/rest.rs +0 -0
  90. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/catalog/unity.rs +0 -0
  91. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/clustering.rs +0 -0
  92. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/compaction.rs +0 -0
  93. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/embeddings.rs +0 -0
  94. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/ffi.rs +0 -0
  95. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/iceberg/iceberg_delete.rs +0 -0
  96. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/iceberg.rs +0 -0
  97. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/cuda/cosine_distance.cu +0 -0
  98. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/cuda/hamming_distance.cu +0 -0
  99. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/cuda/inner_product.cu +0 -0
  100. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/cuda/jaccard_distance.cu +0 -0
  101. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/cuda/kmeans_assignment.cu +0 -0
  102. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/cuda/l1_distance.cu +0 -0
  103. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/cuda/l2_distance.cu +0 -0
  104. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/distance.rs +0 -0
  105. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_ivf.rs +0 -0
  106. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/annhdf5.rs +0 -0
  107. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/api.rs +0 -0
  108. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/dist.rs +0 -0
  109. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/flatten.rs +0 -0
  110. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/hnsw.rs +0 -0
  111. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/hnswio.rs +0 -0
  112. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/libext.rs +0 -0
  113. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/mod.rs +0 -0
  114. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/prelude.rs +0 -0
  115. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/hnsw_rs/test.rs +0 -0
  116. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/ivf.rs +0 -0
  117. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/memory.rs +0 -0
  118. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mod.rs +0 -0
  119. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mps/cosine_distance.metal +0 -0
  120. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mps/hamming_distance.metal +0 -0
  121. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mps/inner_product.metal +0 -0
  122. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mps/jaccard_distance.metal +0 -0
  123. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mps/kmeans_assignment.metal +0 -0
  124. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mps/l1_distance.metal +0 -0
  125. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/mps/l2_distance.metal +0 -0
  126. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/opencl/cosine_distance.cl +0 -0
  127. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/opencl/hamming_distance.cl +0 -0
  128. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/opencl/inner_product.cl +0 -0
  129. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/opencl/jaccard_distance.cl +0 -0
  130. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/opencl/kmeans_assignment.cl +0 -0
  131. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/opencl/l1_distance.cl +0 -0
  132. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/opencl/l2_distance.cl +0 -0
  133. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/pq.rs +0 -0
  134. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/index/tokenizer.rs +0 -0
  135. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/maintenance.rs +0 -0
  136. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/manifest.rs +0 -0
  137. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/merge.rs +0 -0
  138. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/metadata.rs +0 -0
  139. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/mod.rs +0 -0
  140. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/nessie.rs +0 -0
  141. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/planner.rs +0 -0
  142. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/puffin.rs +0 -0
  143. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/query.rs +0 -0
  144. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/reader.rs +0 -0
  145. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/segment.rs +0 -0
  146. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/mod.rs +0 -0
  147. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/optimizer.rs +0 -0
  148. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/pgvector_rewriter.rs +0 -0
  149. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/physical_plan/index_join.rs +0 -0
  150. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/physical_plan.rs +0 -0
  151. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/session.rs +0 -0
  152. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/vector_literal.rs +0 -0
  153. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/vector_operators.rs +0 -0
  154. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/sql/vector_udf.rs +0 -0
  155. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/storage.rs +0 -0
  156. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/table.rs +0 -0
  157. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/table.rs.orig +0 -0
  158. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/core/wal.rs +0 -0
  159. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/enterprise/continuous_indexing.rs +0 -0
  160. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/enterprise/license.rs +0 -0
  161. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/enterprise/mod.rs +0 -0
  162. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/index.rs.old +0 -0
  163. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/lib.rs +0 -0
  164. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/python_binding.rs +0 -0
  165. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/python_distance.rs +0 -0
  166. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/telemetry/metrics.rs +0 -0
  167. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/telemetry/mod.rs +0 -0
  168. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/src/telemetry/tracing.rs +0 -0
  169. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/task.md +0 -0
  170. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/all_types_index_test.rs +0 -0
  171. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/bin/generate_iceberg_manifests.rs +0 -0
  172. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/bin/verify_iceberg_read_check.rs +0 -0
  173. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/check_mmh3.py +0 -0
  174. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/data/download_nyc_taxi.sh +0 -0
  175. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/data/generate_embeddings.py +0 -0
  176. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/data/generate_wikipedia.py +0 -0
  177. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/data/start_nessie.sh +0 -0
  178. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/datafusion_rust_test.rs +0 -0
  179. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/debug_murmur3.rs +0 -0
  180. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/fuzz_murmur3.rs +0 -0
  181. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/integration_test_hnsw_ivf_native.rs +0 -0
  182. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/performance/README.md +0 -0
  183. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/prototype_merge.py +0 -0
  184. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/schema_evolution_test.rs +0 -0
  185. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_catalog_commit.rs +0 -0
  186. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_compliance.rs +0 -0
  187. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_delete_correctness.rs +0 -0
  188. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_iceberg_python_delete.sh +0 -0
  189. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_iceberg_rest.sh +0 -0
  190. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_iceberg_rest_create.sh +0 -0
  191. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_iceberg_rest_delete.sh +0 -0
  192. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_iceberg_rest_remove_index.sh +0 -0
  193. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_iceberg_rest_update.sh +0 -0
  194. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_metadata_creation.rs +0 -0
  195. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_mor_reads.rs +0 -0
  196. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_mor_writes.rs +0 -0
  197. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_partition_transforms.rs +0 -0
  198. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_partitioned_writes.rs +0 -0
  199. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_puffin_index.sh +0 -0
  200. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_rest_updates.sh +0 -0
  201. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/tests/verify_schema_compat.rs +0 -0
  202. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/.DS_Store +0 -0
  203. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/catalog/glue_catalog.properties +0 -0
  204. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/catalog/hyperstreamdb.properties +0 -0
  205. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/catalog/iceberg.properties +0 -0
  206. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/catalog/memory.properties +0 -0
  207. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/catalog/postgres.properties +0 -0
  208. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/config.properties +0 -0
  209. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/entrypoint.sh +0 -0
  210. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/jvm.config +0 -0
  211. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config/node.properties +0 -0
  212. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-config.zip +0 -0
  213. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/pom.xml +0 -0
  214. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBColumnHandle.java +0 -0
  215. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBConnectorFactory.java +0 -0
  216. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBMetadata.java +0 -0
  217. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSource.java +0 -0
  218. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSourceProvider.java +0 -0
  219. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPlugin.java +0 -0
  220. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplit.java +0 -0
  221. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplitManager.java +0 -0
  222. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBTableHandle.java +0 -0
  223. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/update_schema_patch.py +0 -0
  224. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/update_schema_patch2.py +0 -0
  225. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/verify_docstrings.py +0 -0
  226. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/verify_fluent_api.py +0 -0
  227. {hyperstreamdb-0.1.10 → hyperstreamdb-0.1.12}/verify_unified_ingest.py +0 -0
@@ -104,3 +104,5 @@ rag_db/
104
104
  news_db/
105
105
 
106
106
  .hypothesis/
107
+ venv_demo/
108
+ venv_demo/
@@ -116,7 +116,7 @@ version = "1.1.5"
116
116
  source = "registry+https://github.com/rust-lang/crates.io-index"
117
117
  checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
118
118
  dependencies = [
119
- "windows-sys 0.60.2",
119
+ "windows-sys 0.61.2",
120
120
  ]
121
121
 
122
122
  [[package]]
@@ -127,7 +127,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
127
127
  dependencies = [
128
128
  "anstyle",
129
129
  "once_cell_polyfill",
130
- "windows-sys 0.60.2",
130
+ "windows-sys 0.61.2",
131
131
  ]
132
132
 
133
133
  [[package]]
@@ -1411,13 +1411,14 @@ dependencies = [
1411
1411
 
1412
1412
  [[package]]
1413
1413
  name = "cl3"
1414
- version = "0.9.5"
1414
+ version = "0.13.1"
1415
1415
  source = "registry+https://github.com/rust-lang/crates.io-index"
1416
- checksum = "b823f24e72fa0c68aa14a250ae1c0848e68d4ae188b71c3972343e45b46f8644"
1416
+ checksum = "8ad5f4170f520224684c5c6e86e8d5474c2a10696e553b1db8389970cd82ece7"
1417
1417
  dependencies = [
1418
+ "dlopen2",
1418
1419
  "libc",
1419
1420
  "opencl-sys",
1420
- "thiserror 1.0.69",
1421
+ "thiserror 2.0.18",
1421
1422
  ]
1422
1423
 
1423
1424
  [[package]]
@@ -2673,6 +2674,29 @@ dependencies = [
2673
2674
  "syn 2.0.117",
2674
2675
  ]
2675
2676
 
2677
+ [[package]]
2678
+ name = "dlopen2"
2679
+ version = "0.8.2"
2680
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2681
+ checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4"
2682
+ dependencies = [
2683
+ "dlopen2_derive",
2684
+ "libc",
2685
+ "once_cell",
2686
+ "winapi",
2687
+ ]
2688
+
2689
+ [[package]]
2690
+ name = "dlopen2_derive"
2691
+ version = "0.4.3"
2692
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2693
+ checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f"
2694
+ dependencies = [
2695
+ "proc-macro2",
2696
+ "quote",
2697
+ "syn 2.0.117",
2698
+ ]
2699
+
2676
2700
  [[package]]
2677
2701
  name = "dotenvy"
2678
2702
  version = "0.15.7"
@@ -2779,7 +2803,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2779
2803
  checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
2780
2804
  dependencies = [
2781
2805
  "libc",
2782
- "windows-sys 0.52.0",
2806
+ "windows-sys 0.61.2",
2783
2807
  ]
2784
2808
 
2785
2809
  [[package]]
@@ -3755,7 +3779,7 @@ dependencies = [
3755
3779
 
3756
3780
  [[package]]
3757
3781
  name = "hyperstreamdb"
3758
- version = "0.1.10"
3782
+ version = "0.1.12"
3759
3783
  dependencies = [
3760
3784
  "ahash 0.8.12",
3761
3785
  "anyhow",
@@ -4064,7 +4088,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46"
4064
4088
  dependencies = [
4065
4089
  "hermit-abi",
4066
4090
  "libc",
4067
- "windows-sys 0.52.0",
4091
+ "windows-sys 0.61.2",
4068
4092
  ]
4069
4093
 
4070
4094
  [[package]]
@@ -4731,7 +4755,7 @@ version = "0.50.3"
4731
4755
  source = "registry+https://github.com/rust-lang/crates.io-index"
4732
4756
  checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
4733
4757
  dependencies = [
4734
- "windows-sys 0.59.0",
4758
+ "windows-sys 0.61.2",
4735
4759
  ]
4736
4760
 
4737
4761
  [[package]]
@@ -4994,18 +5018,18 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
4994
5018
 
4995
5019
  [[package]]
4996
5020
  name = "opencl-sys"
4997
- version = "0.2.9"
5021
+ version = "0.6.1"
4998
5022
  source = "registry+https://github.com/rust-lang/crates.io-index"
4999
- checksum = "de15dd01496ae90c5799f5266184ab020082b4065800ff0b732f489371d0e5cf"
5023
+ checksum = "9bd005f352b2f05acd01d04122448e84f8bc66bdae49045927841bc63de62123"
5000
5024
  dependencies = [
5001
5025
  "libc",
5002
5026
  ]
5003
5027
 
5004
5028
  [[package]]
5005
5029
  name = "opencl3"
5006
- version = "0.9.5"
5030
+ version = "0.12.3"
5007
5031
  source = "registry+https://github.com/rust-lang/crates.io-index"
5008
- checksum = "26ab4a90cb496f787d3934deb0c54fa9d65e7bed710c10071234aab0196fba04"
5032
+ checksum = "ecb3473c4f01afd0eea3ee5b31649fec47dbc23353a63e1b916aa67cd810fb73"
5009
5033
  dependencies = [
5010
5034
  "cl3",
5011
5035
  "libc",
@@ -6248,7 +6272,7 @@ dependencies = [
6248
6272
  "errno",
6249
6273
  "libc",
6250
6274
  "linux-raw-sys",
6251
- "windows-sys 0.52.0",
6275
+ "windows-sys 0.61.2",
6252
6276
  ]
6253
6277
 
6254
6278
  [[package]]
@@ -6694,7 +6718,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
6694
6718
  checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
6695
6719
  dependencies = [
6696
6720
  "libc",
6697
- "windows-sys 0.60.2",
6721
+ "windows-sys 0.61.2",
6698
6722
  ]
6699
6723
 
6700
6724
  [[package]]
@@ -7172,7 +7196,7 @@ dependencies = [
7172
7196
  "getrandom 0.4.2",
7173
7197
  "once_cell",
7174
7198
  "rustix",
7175
- "windows-sys 0.52.0",
7199
+ "windows-sys 0.61.2",
7176
7200
  ]
7177
7201
 
7178
7202
  [[package]]
@@ -8213,7 +8237,7 @@ version = "0.1.11"
8213
8237
  source = "registry+https://github.com/rust-lang/crates.io-index"
8214
8238
  checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
8215
8239
  dependencies = [
8216
- "windows-sys 0.48.0",
8240
+ "windows-sys 0.61.2",
8217
8241
  ]
8218
8242
 
8219
8243
  [[package]]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "hyperstreamdb"
3
- version = "0.1.10"
3
+ version = "0.1.12"
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"
@@ -32,10 +32,7 @@ crate-type = ["cdylib", "rlib"]
32
32
  [features]
33
33
  default = ["candle"]
34
34
  candle = []
35
- cuda = ["dep:cust", "intel"]
36
- rocm = ["dep:opencl3", "intel"] # Fallback to OpenCL for now
37
- mps = ["metal"]
38
- intel = ["dep:opencl3"]
35
+ cuda = ["dep:cust"] # Requires CUDA SDK at compile time
39
36
  enterprise = []
40
37
  python = ["dep:pyo3", "pyo3/extension-module", "dep:numpy", "dep:pythonize"]
41
38
  java = ["dep:jni"]
@@ -80,10 +77,7 @@ aws-sdk-glue = "1.0"
80
77
  volo-thrift = "0.10"
81
78
  pilota = "0.11"
82
79
 
83
- # Hardware Acceleration
84
- cust = { version = "0.3", optional = true } # CUDA
85
- opencl3 = { version = "0.9", optional = true } # Intel / OpenCL
86
-
80
+ # Hardware Acceleration (moved to bottom of file)
87
81
  # indexing
88
82
  roaring = "0.10.2" # For scalar bitmaps
89
83
  # hnsw_rs removed and internalized to src/core/index/hnsw_rs
@@ -141,9 +135,14 @@ candle-nn = "0.8"
141
135
  candle-transformers = "0.8"
142
136
  tokenizers = "0.21"
143
137
  sha2 = "0.10"
138
+ cust = { version = "0.3", optional = true } # CUDA (requires CUDA SDK at compile time)
139
+
140
+ [target.'cfg(not(target_os = "macos"))'.dependencies]
141
+ opencl3 = { version = "0.12", default-features = false, features = ["dynamic"] } # Intel / OpenCL (dynamically loads at runtime)
144
142
 
145
143
  [target.'cfg(target_os = "macos")'.dependencies]
146
- metal = { version = "0.27.0", optional = true } # MPS
144
+ metal = { version = "0.27.0" } # MPS
145
+ opencl3 = { version = "0.12", default-features = false, features = ["dynamic"] } # Intel / OpenCL
147
146
 
148
147
  [target.'cfg(target_os = "linux")'.dependencies]
149
148
  # rocm-smi = { version = "0.4.0", optional = true } # ROCm monitoring
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperstreamdb
3
- Version: 0.1.10
3
+ Version: 0.1.12
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Programming Language :: Rust
@@ -19,7 +19,7 @@ Requires-Dist: numpy>=1.20.0
19
19
  Requires-Dist: mps ; extra == 'all-gpu'
20
20
  Requires-Dist: cuda ; extra == 'all-gpu'
21
21
  Requires-Dist: rocm ; extra == 'all-gpu'
22
- Requires-Dist: intel-gpu ; extra == 'all-gpu'
22
+ Requires-Dist: intel ; extra == 'all-gpu'
23
23
  Requires-Dist: pytest>=7.0 ; extra == 'dev'
24
24
  Requires-Dist: pytest-asyncio>=0.21 ; extra == 'dev'
25
25
  Requires-Dist: maturin>=1.7 ; extra == 'dev'
@@ -27,8 +27,7 @@ Requires-Dist: maturin>=1.7 ; extra == 'src'
27
27
  Provides-Extra: all_gpu
28
28
  Provides-Extra: cuda
29
29
  Provides-Extra: dev
30
- Provides-Extra: intel_cpu
31
- Provides-Extra: intel_gpu
30
+ Provides-Extra: intel
32
31
  Provides-Extra: mps
33
32
  Provides-Extra: rocm
34
33
  Provides-Extra: src
@@ -114,23 +113,25 @@ Upgrading to V3 enables row-level operations and enhanced tracking:
114
113
 
115
114
  ### Installation
116
115
 
117
- ```bash
118
- # Install from source
119
- git clone https://github.com/rla3rd/hyperstreamdb
120
- cd hyperstreamdb
116
+ **Standard Install (CPU + OpenCL/Metal):**
117
+ The default package includes automatic hardware detection for Apple Metal, Intel OpenCL, and AMD ROCm.
121
118
 
122
- # Build Python bindings
123
- pip install maturin
124
- maturin develop
125
-
126
- # Or install from PyPI (coming soon)
119
+ ```bash
127
120
  pip install hyperstreamdb
121
+ ```
122
+
123
+ **CUDA Support (NVIDIA):**
124
+ CUDA requires the **CUDA Toolkit** to be installed at compile time. You can build from source using the `[cuda]` extra:
128
125
 
129
- # Windows Users
130
- # HyperStreamDB is optimized for Linux/POSIX environments.
131
- # Windows users should use WSL2 (Windows Subsystem for Linux).
126
+ ```bash
127
+ # Requires: CUDA Toolkit and Rust toolchain
128
+ pip install hyperstreamdb[cuda] --no-binary :all:
132
129
  ```
133
130
 
131
+ **Windows Users:**
132
+ HyperStreamDB is optimized for Linux/POSIX. Windows users should use **WSL2**.
133
+
134
+
134
135
  ### GPU Acceleration (Optional)
135
136
 
136
137
  For GPU-accelerated vector operations, install the appropriate backend:
@@ -68,23 +68,25 @@ Upgrading to V3 enables row-level operations and enhanced tracking:
68
68
 
69
69
  ### Installation
70
70
 
71
- ```bash
72
- # Install from source
73
- git clone https://github.com/rla3rd/hyperstreamdb
74
- cd hyperstreamdb
71
+ **Standard Install (CPU + OpenCL/Metal):**
72
+ The default package includes automatic hardware detection for Apple Metal, Intel OpenCL, and AMD ROCm.
75
73
 
76
- # Build Python bindings
77
- pip install maturin
78
- maturin develop
79
-
80
- # Or install from PyPI (coming soon)
74
+ ```bash
81
75
  pip install hyperstreamdb
76
+ ```
77
+
78
+ **CUDA Support (NVIDIA):**
79
+ CUDA requires the **CUDA Toolkit** to be installed at compile time. You can build from source using the `[cuda]` extra:
82
80
 
83
- # Windows Users
84
- # HyperStreamDB is optimized for Linux/POSIX environments.
85
- # Windows users should use WSL2 (Windows Subsystem for Linux).
81
+ ```bash
82
+ # Requires: CUDA Toolkit and Rust toolchain
83
+ pip install hyperstreamdb[cuda] --no-binary :all:
86
84
  ```
87
85
 
86
+ **Windows Users:**
87
+ HyperStreamDB is optimized for Linux/POSIX. Windows users should use **WSL2**.
88
+
89
+
88
90
  ### GPU Acceleration (Optional)
89
91
 
90
92
  For GPU-accelerated vector operations, install the appropriate backend:
@@ -17,41 +17,41 @@ fn main() {
17
17
  fs::write(&version_file, format!(r#"pub const VERSION: &str = "{}";"#, version))
18
18
  .expect("Failed to write version.rs");
19
19
 
20
- #[cfg(feature = "cuda")]
21
- {
22
- let out_dir = env::var("OUT_DIR").unwrap();
20
+ let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap_or_default();
21
+
22
+ // CUDA kernel compilation - only when the cuda feature is explicitly enabled
23
+ // (MPS is handled by #[cfg(target_os = "macos")] in source code)
24
+ // (Intel/ROCm are handled by opencl3 which is always available)
25
+ if env::var("CARGO_FEATURE_CUDA").is_ok() && target_os != "macos" {
26
+ let has_nvcc = Command::new("nvcc").arg("--version").output().is_ok();
23
27
 
24
- // Check if nvcc is available
25
- let status = Command::new("nvcc").arg("--version").output();
26
- if status.is_err() {
27
- println!("cargo:warning=nvcc not found, skipping CUDA kernel compilation");
28
- return;
29
- }
30
-
31
- // List of CUDA kernels to compile
32
- let kernels = vec![
33
- "l2_distance",
34
- "cosine_distance",
35
- "inner_product",
36
- "l1_distance",
37
- "hamming_distance",
38
- "jaccard_distance",
39
- "kmeans_assignment",
40
- ];
28
+ if has_nvcc {
29
+ let out_dir = env::var("OUT_DIR").unwrap();
30
+ let kernels = vec![
31
+ "l2_distance",
32
+ "cosine_distance",
33
+ "inner_product",
34
+ "l1_distance",
35
+ "hamming_distance",
36
+ "jaccard_distance",
37
+ "kmeans_assignment",
38
+ ];
41
39
 
42
- // Compile each kernel
43
- for kernel_name in kernels {
44
- let kernel_src = format!("src/core/index/cuda/{}.cu", kernel_name);
45
- let kernel_ptx = format!("{}/{}.ptx", out_dir, kernel_name);
40
+ for kernel_name in kernels {
41
+ let kernel_src = format!("src/core/index/cuda/{}.cu", kernel_name);
42
+ let kernel_ptx = format!("{}/{}.ptx", out_dir, kernel_name);
46
43
 
47
- let status = Command::new("nvcc")
48
- .args(&["-ptx", &kernel_src, "-o", &kernel_ptx])
49
- .status()
50
- .expect(&format!("Failed to execute nvcc for {}", kernel_name));
44
+ let status = Command::new("nvcc")
45
+ .args(&["-ptx", &kernel_src, "-o", &kernel_ptx])
46
+ .status()
47
+ .expect(&format!("Failed to execute nvcc for {}", kernel_name));
51
48
 
52
- if !status.success() {
53
- panic!("nvcc failed for {}", kernel_name);
49
+ if !status.success() {
50
+ panic!("nvcc failed for {}", kernel_name);
51
+ }
54
52
  }
53
+ } else {
54
+ panic!("CUDA feature enabled but nvcc not found. Install CUDA Toolkit or remove the 'cuda' feature.");
55
55
  }
56
56
  }
57
57
  }
@@ -13,17 +13,54 @@ HyperStreamDB supports GPU acceleration for vector distance computations across
13
13
 
14
14
  GPU acceleration provides 10x+ speedup for batch distance operations on large vector databases (100,000+ vectors).
15
15
 
16
+ ## Installation
17
+
18
+ ### Standard Install (PyPI)
19
+
20
+ The default `pip install` includes automatic runtime detection for **MPS** (macOS), **Intel OpenCL**, and **AMD ROCm (via OpenCL)**. No extra setup is needed — if the hardware and drivers are present, HyperStreamDB detects them automatically.
21
+
22
+ ```bash
23
+ pip install hyperstreamdb
24
+ ```
25
+
26
+ ### CUDA Install (Source Build)
27
+
28
+ NVIDIA CUDA support requires the **CUDA Toolkit** to be installed on your system at compile time. You must build from source:
29
+
30
+ ```bash
31
+ # Requires: CUDA Toolkit 11.0+ and Rust toolchain
32
+ pip install hyperstreamdb[cuda] --no-binary :all:
33
+ ```
34
+
35
+ Or clone and build directly:
36
+
37
+ ```bash
38
+ git clone https://github.com/rla3rd/hyperstreamdb.git
39
+ cd hyperstreamdb
40
+ pip install -e ".[cuda]"
41
+ ```
42
+
43
+ > **Note:** A future release will use runtime CUDA detection (via `cudarc`), eliminating the need for source builds.
44
+
16
45
  ## Quick Start
17
46
 
18
47
  ```python
19
48
  import hyperstreamdb as hdb
20
49
 
21
50
  # Auto-detect and use best available GPU backend
22
- ctx = hdb.GPUContext.auto_detect()
23
- print(f"Using GPU backend: {ctx.backend}")
24
-
25
- # Check what backends are available
26
- print(f"Available backends: {ctx.list_available_backends()}")
51
+ device = hdb.Device("auto")
52
+ print(f"Using backend: {device.type}")
53
+
54
+ # Or pick a specific backend
55
+ device = hdb.Device("cuda") # NVIDIA (requires source build with CUDA)
56
+ device = hdb.Device("mps") # Apple Silicon (auto-detected on macOS)
57
+ device = hdb.Device("intel") # Intel OpenCL (auto-detected)
58
+ device = hdb.Device("rocm") # AMD OpenCL (auto-detected)
59
+ device = hdb.Device("cpu") # CPU fallback (always available)
60
+
61
+ # Check availability
62
+ print(hdb.Device.is_available("cuda")) # True if CUDA compiled in + driver present
63
+ print(hdb.Device.is_available("intel")) # True if Intel OpenCL driver present
27
64
  ```
28
65
 
29
66
  ## NVIDIA CUDA Setup
@@ -11,10 +11,22 @@ sys.path.insert(0, os.path.abspath('../../python'))
11
11
  # -- Project information -----------------------------------------------------
12
12
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
13
13
 
14
+ # Read version from Cargo.toml (single source of truth)
15
+ _cargo_toml = os.path.join(os.path.dirname(__file__), '..', '..', 'Cargo.toml')
16
+ try:
17
+ import tomllib
18
+ with open(_cargo_toml, 'rb') as f:
19
+ _cargo = tomllib.load(f)
20
+ release = _cargo['package']['version']
21
+ except ModuleNotFoundError:
22
+ import re
23
+ with open(_cargo_toml, 'r') as f:
24
+ _match = re.search(r'^version\s*=\s*"([^"]+)"', f.read(), re.MULTILINE)
25
+ release = _match.group(1) if _match else '0.0.0'
26
+
14
27
  project = 'HyperStreamDB'
15
28
  copyright = '2026, HyperStream Team'
16
29
  author = 'HyperStream Team'
17
- release = '0.1.10'
18
30
 
19
31
  # -- General configuration ---------------------------------------------------
20
32
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "hyperstreamdb"
7
- version = "0.1.10"
7
+ dynamic = ["version"]
8
8
  description = "HyperStreamDB - Serverless Index-Streaming Database with Overlay Indexing"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -44,9 +44,8 @@ dev = [
44
44
  mps = [] # Apple Silicon (Metal)
45
45
  cuda = [] # NVIDIA (CUDA)
46
46
  rocm = [] # AMD (via OpenCL/ROCm)
47
- intel_gpu = [] # Intel (OpenCL)
48
- intel_cpu = [] # Intel (SIMD/AVX2)
49
- all_gpu = ["mps", "cuda", "rocm", "intel_gpu"]
47
+ intel = [] # Intel (OpenCL)
48
+ all_gpu = ["mps", "cuda", "rocm", "intel"]
50
49
  src = ["maturin>=1.7"]
51
50
 
52
51
  [project.urls]
@@ -55,8 +54,9 @@ Repository = "https://github.com/rla3rd/hyperstreamdb"
55
54
 
56
55
  [tool.maturin]
57
56
  features = ["python"]
58
- # Map Python extras to Rust features
59
- extra-features = { mps = ["mps"], cuda = ["cuda"], rocm = ["rocm"], intel_gpu = ["intel_gpu"], intel_cpu = ["intel_cpu"] }
57
+ # Map pip extras to Cargo features for source builds
58
+ # e.g. pip install hyperstreamdb[cuda] --no-binary :all:
59
+ extra-features = { cuda = ["cuda"] }
60
60
  module-name = "hyperstreamdb.hyperstreamdb"
61
61
  python-source = "python"
62
62
  # Build both the Rust library and Python bindings (multi-version compatible)