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
package/golang/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```golang
6
6
  import (
7
- "github.com/unum-cloud/usearch/golang"
7
+ "github.com/unum-cloud/usearch/golang-go"
8
8
  )
9
9
  ```
10
10
 
@@ -15,14 +15,38 @@ package main
15
15
 
16
16
  import (
17
17
  "fmt"
18
- "github.com/unum-cloud/usearch/golang"
18
+ "github.com/unum-cloud/usearch/golang-go"
19
19
  )
20
20
 
21
21
  func main() {
22
- conf := usearch.DefaultConfig(128)
23
- index := usearch.NewIndex(conf)
24
- v := make([]float32, 128)
25
- index.Add(42, v)
26
- results := index.Search(v, 1)
22
+ dim := uint(128)
23
+ conf := DefaultConfig(dim)
24
+ ind, err := NewIndex(conf)
25
+ if err != nil {
26
+ panic("Failed to construct the index: %s", err)
27
+ }
28
+ defer ind.Destroy()
29
+
30
+ err = ind.Reserve(100)
31
+ if err != nil {
32
+ panic("Failed to reserve capacity: %s", err)
33
+ }
34
+
35
+ vec := make([]float32, dim)
36
+ vec[0] = 40.0
37
+ vec[1] = 2.0
38
+
39
+ err = ind.Add(42, vec)
40
+ if err != nil {
41
+ panic("Failed to insert: %s", err)
42
+ }
43
+
44
+ keys, distances, err := ind.Search(vec, 10)
45
+ if err != nil {
46
+ panic("Failed to search: %s", err)
47
+ }
48
+ if keys[0] != 42 || distances[0] != 0.0 {
49
+ panic("Expected result 42 with distance 0, got key %d with distance %f", keys[0], distances[0])
50
+ }
27
51
  }
28
52
  ```
package/golang/lib.go CHANGED
@@ -7,7 +7,7 @@ import (
7
7
 
8
8
  /*
9
9
  #cgo CFLAGS: -I${SRCDIR}/../c/
10
- #cgo LDFLAGS: -L./ -lusearch
10
+ #cgo LDFLAGS: -L${SRCDIR}/. -Wl,-rpath,\$ORIGIN/ -lusearch_c
11
11
  #include <usearch.h>
12
12
  #include <stdlib.h>
13
13
  */