usearch 1.1.0 → 1.2.0

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 (71) hide show
  1. package/.github/workflows/prerelease.yml +3 -3
  2. package/.github/workflows/release.yml +3 -3
  3. package/.github/workflows/update_version.sh +1 -1
  4. package/.gitmodules +1 -4
  5. package/Cargo.toml +1 -1
  6. package/Package.swift +2 -1
  7. package/README.md +129 -46
  8. package/binding.gyp +16 -12
  9. package/build.gradle +1 -1
  10. package/build.rs +0 -1
  11. package/c/CMakeLists.txt +11 -7
  12. package/c/lib.cpp +36 -24
  13. package/c/usearch.h +42 -12
  14. package/cluster.ipynb +167 -0
  15. package/conanfile.py +1 -1
  16. package/cpp/CMakeLists.txt +8 -3
  17. package/cpp/bench.cpp +2 -2
  18. package/cpp/test.cpp +42 -25
  19. package/docs/benchmarks.md +8 -0
  20. package/docs/compilation.md +7 -7
  21. package/docs/conf.py +27 -24
  22. package/docs/javascript/reference.rst +3 -0
  23. package/docs/wolfram/index.rst +6 -0
  24. package/golang/README.md +31 -7
  25. package/golang/lib.go +1 -1
  26. package/include/usearch/index.hpp +348 -69
  27. package/include/usearch/index_dense.hpp +587 -179
  28. package/include/usearch/index_plugins.hpp +194 -16
  29. package/java/cloud/unum/usearch/Index.java +13 -0
  30. package/java/cloud/unum/usearch/cloud_unum_usearch_Index.cpp +40 -9
  31. package/java/cloud/unum/usearch/cloud_unum_usearch_Index.h +16 -0
  32. package/javascript/docs.js +111 -0
  33. package/javascript/lib.cpp +29 -9
  34. package/javascript/usearch.d.ts +9 -1
  35. package/objc/USearchObjective.mm +11 -11
  36. package/package.json +2 -2
  37. package/pyproject.toml +1 -1
  38. package/python/lib.cpp +492 -159
  39. package/python/scripts/index_faiss.py +3 -3
  40. package/python/scripts/join.py +6 -6
  41. package/python/scripts/test_index.py +219 -0
  42. package/python/scripts/test_sparse.py +21 -21
  43. package/python/scripts/test_tooling.py +111 -0
  44. package/python/usearch/eval.py +9 -5
  45. package/python/usearch/index.py +491 -216
  46. package/rust/lib.cpp +6 -24
  47. package/rust/lib.hpp +1 -3
  48. package/rust/lib.rs +89 -0
  49. package/setup.py +5 -6
  50. package/wasm/CMakeLists.txt +0 -1
  51. package/wasmer.toml +1 -1
  52. package/python/scripts/test.py +0 -364
  53. package/robin-map/.codecov.yml +0 -5
  54. package/robin-map/.github/workflows/ci.yml +0 -136
  55. package/robin-map/CMakeLists.txt +0 -86
  56. package/robin-map/LICENSE +0 -21
  57. package/robin-map/README.md +0 -483
  58. package/robin-map/cmake/tsl-robin-mapConfig.cmake.in +0 -9
  59. package/robin-map/doxygen.conf +0 -2483
  60. package/robin-map/include/tsl/robin_growth_policy.h +0 -406
  61. package/robin-map/include/tsl/robin_hash.h +0 -1639
  62. package/robin-map/include/tsl/robin_map.h +0 -807
  63. package/robin-map/include/tsl/robin_set.h +0 -660
  64. package/robin-map/tests/CMakeLists.txt +0 -26
  65. package/robin-map/tests/custom_allocator_tests.cpp +0 -138
  66. package/robin-map/tests/main.cpp +0 -26
  67. package/robin-map/tests/policy_tests.cpp +0 -97
  68. package/robin-map/tests/robin_map_tests.cpp +0 -1451
  69. package/robin-map/tests/robin_set_tests.cpp +0 -164
  70. package/robin-map/tests/utils.h +0 -443
  71. package/robin-map/tsl-robin-map.natvis +0 -78
@@ -128,7 +128,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
128
128
 
129
129
  if (!result) {
130
130
  @throw [NSException exceptionWithName:@"Can't add to index"
131
- reason:[NSString stringWithUTF8String:result.error.what()]
131
+ reason:[NSString stringWithUTF8String:result.error.release()]
132
132
  userInfo:nil];
133
133
  }
134
134
  }
@@ -141,7 +141,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
141
141
 
142
142
  if (!result) {
143
143
  @throw [NSException exceptionWithName:@"Can't find in index"
144
- reason:[NSString stringWithUTF8String:result.error.what()]
144
+ reason:[NSString stringWithUTF8String:result.error.release()]
145
145
  userInfo:nil];
146
146
  }
147
147
 
@@ -155,7 +155,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
155
155
 
156
156
  if (!result) {
157
157
  @throw [NSException exceptionWithName:@"Can't add to index"
158
- reason:[NSString stringWithUTF8String:result.error.what()]
158
+ reason:[NSString stringWithUTF8String:result.error.release()]
159
159
  userInfo:nil];
160
160
  }
161
161
  }
@@ -168,7 +168,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
168
168
 
169
169
  if (!result) {
170
170
  @throw [NSException exceptionWithName:@"Can't find in index"
171
- reason:[NSString stringWithUTF8String:result.error.what()]
171
+ reason:[NSString stringWithUTF8String:result.error.release()]
172
172
  userInfo:nil];
173
173
  }
174
174
 
@@ -182,7 +182,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
182
182
 
183
183
  if (!result) {
184
184
  @throw [NSException exceptionWithName:@"Can't add to index"
185
- reason:[NSString stringWithUTF8String:result.error.what()]
185
+ reason:[NSString stringWithUTF8String:result.error.release()]
186
186
  userInfo:nil];
187
187
  }
188
188
  }
@@ -195,7 +195,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
195
195
 
196
196
  if (!result) {
197
197
  @throw [NSException exceptionWithName:@"Can't find in index"
198
- reason:[NSString stringWithUTF8String:result.error.what()]
198
+ reason:[NSString stringWithUTF8String:result.error.release()]
199
199
  userInfo:nil];
200
200
  }
201
201
 
@@ -224,7 +224,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
224
224
 
225
225
  if (!result) {
226
226
  @throw [NSException exceptionWithName:@"Can't remove an entry"
227
- reason:[NSString stringWithUTF8String:result.error.what()]
227
+ reason:[NSString stringWithUTF8String:result.error.release()]
228
228
  userInfo:nil];
229
229
  }
230
230
  }
@@ -234,7 +234,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
234
234
 
235
235
  if (!result) {
236
236
  @throw [NSException exceptionWithName:@"Can't rename the entry"
237
- reason:[NSString stringWithUTF8String:result.error.what()]
237
+ reason:[NSString stringWithUTF8String:result.error.release()]
238
238
  userInfo:nil];
239
239
  }
240
240
  }
@@ -252,7 +252,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
252
252
 
253
253
  if (!result) {
254
254
  @throw [NSException exceptionWithName:@"Can't save to disk"
255
- reason:[NSString stringWithUTF8String:result.error.what()]
255
+ reason:[NSString stringWithUTF8String:result.error.release()]
256
256
  userInfo:nil];
257
257
  }
258
258
  }
@@ -270,7 +270,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
270
270
 
271
271
  if (!result) {
272
272
  @throw [NSException exceptionWithName:@"Can't load from disk"
273
- reason:[NSString stringWithUTF8String:result.error.what()]
273
+ reason:[NSString stringWithUTF8String:result.error.release()]
274
274
  userInfo:nil];
275
275
  }
276
276
  }
@@ -288,7 +288,7 @@ scalar_kind_t to_native_scalar(USearchScalar m) {
288
288
 
289
289
  if (!result) {
290
290
  @throw [NSException exceptionWithName:@"Can't view from disk"
291
- reason:[NSString stringWithUTF8String:result.error.what()]
291
+ reason:[NSString stringWithUTF8String:result.error.release()]
292
292
  userInfo:nil];
293
293
  }
294
294
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "usearch",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Smaller & Faster Single-File Vector Search Engine from Unum",
5
5
  "author": "Ash Vardanian",
6
6
  "license": "Apache 2.0",
@@ -25,7 +25,7 @@
25
25
  "@semantic-release/exec": "^6.0.3",
26
26
  "@semantic-release/git": "^10.0.1",
27
27
  "conventional-changelog-eslint": "^3.0.9",
28
- "semantic-release": "^21.0.7",
28
+ "semantic-release": "^21.1.0",
29
29
  "typescript": "^5.1.6"
30
30
  }
31
31
  }
package/pyproject.toml CHANGED
@@ -10,7 +10,7 @@ filterwarnings = ["error"]
10
10
 
11
11
  [tool.cibuildwheel]
12
12
  test-requires = ["pytest", "numpy"]
13
- test-command = "pytest {project}/python/scripts/test.py"
13
+ test-command = "pytest {project}/python/scripts"
14
14
  build-verbosity = 0
15
15
  skip = ["*musllinux*", "*i686*", "pp*", "cp36-*"]
16
16