usearch 0.20.0 → 0.22.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.
- package/.github/workflows/prerelease.yml +46 -0
- package/.github/workflows/release.yml +28 -0
- package/.github/workflows/update_version.sh +2 -1
- package/CMakeLists.txt +4 -0
- package/Cargo.toml +1 -1
- package/README.md +93 -585
- package/c/lib.cpp +19 -15
- package/c/usearch.h +26 -23
- package/cmake/emscripten.cmake +8 -0
- package/conanfile.py +1 -1
- package/cpp/CMakeLists.txt +6 -2
- package/cpp/README.md +88 -0
- package/cpp/bench.cpp +72 -44
- package/cpp/test.cpp +13 -7
- package/docs/benchmarks.md +14 -12
- package/docs/golang/index.rst +6 -0
- package/docs/index.rst +5 -2
- package/docs/python/reference.rst +9 -2
- package/docs/rust/index.rst +6 -0
- package/docs/swift/index.rst +6 -0
- package/golang/README.md +28 -0
- package/include/usearch/index.hpp +668 -123
- package/include/usearch/index_punned_dense.hpp +305 -93
- package/include/usearch/index_punned_helpers.hpp +28 -3
- package/java/README.md +22 -0
- package/javascript/README.md +27 -0
- package/javascript/lib.cpp +1 -1
- package/package.json +1 -1
- package/python/README.md +283 -0
- package/python/lib.cpp +118 -16
- package/python/scripts/join.py +155 -0
- package/python/scripts/test.py +45 -241
- package/python/scripts/test_jit.py +244 -0
- package/python/usearch/eval.py +11 -3
- package/python/usearch/index.py +207 -26
- package/rust/README.md +67 -0
- package/swift/README.md +20 -0
- package/wasm/CMakeLists.txt +15 -0
- package/wasm/lib.cpp +5 -0
- package/wasmer.toml +8 -0
- package/python/usearch/join.py +0 -98
package/docs/benchmarks.md
CHANGED
|
@@ -117,21 +117,23 @@ OPTIONS
|
|
|
117
117
|
BigANN benchmark is a good starting point, if you are searching for large collections of high-dimensional vectors.
|
|
118
118
|
Those often come with precomputed ground-truth neighbors, which is handy for recall evaluation.
|
|
119
119
|
|
|
120
|
-
| Dataset
|
|
121
|
-
|
|
|
122
|
-
| [Unum UForm
|
|
123
|
-
| [
|
|
124
|
-
|
|
|
125
|
-
|
|
|
126
|
-
| [Microsoft
|
|
127
|
-
| [
|
|
128
|
-
| [Yandex
|
|
129
|
-
|
|
|
130
|
-
|
|
|
120
|
+
| Dataset | Scalar Type | Dimensions | Metric | Size |
|
|
121
|
+
| :----------------------------------------- | :---------: | :--------: | :----: | :-------: |
|
|
122
|
+
| [Unum UForm Creative Captions][unum-cc-3m] | float32 | 256 | IP | 3 GB |
|
|
123
|
+
| [Unum UForm Wiki][unum-wiki-1m] | float32 | 256 | IP | 1 GB |
|
|
124
|
+
| [Yandex Text-to-Image Sample][unum-t2i] | float32 | 200 | Cos | 1 GB |
|
|
125
|
+
| | | | | |
|
|
126
|
+
| [Microsoft SPACEV][spacev] | int8 | 100 | L2 | 93 GB |
|
|
127
|
+
| [Microsoft Turing-ANNS][turing] | float32 | 100 | L2 | 373 GB |
|
|
128
|
+
| [Yandex Deep1B][deep] | float32 | 96 | L2 | 358 GB |
|
|
129
|
+
| [Yandex Text-to-Image][t2i] | float32 | 200 | Cos | 750 GB |
|
|
130
|
+
| | | | | |
|
|
131
|
+
| [ViT-L/12 LAION][laion] | float32 | 2048 | Cos | 2 - 10 TB |
|
|
131
132
|
|
|
132
133
|
Luckily, smaller samples of those datasets are available.
|
|
133
134
|
|
|
134
|
-
[unum-
|
|
135
|
+
[unum-cc-3m]: https://huggingface.co/datasets/unum-cloud/ann-cc-3m
|
|
136
|
+
[unum-wiki-1m]: https://huggingface.co/datasets/unum-cloud/ann-wiki-1m
|
|
135
137
|
[unum-t2i]: https://huggingface.co/datasets/unum-cloud/ann-t2i-1m
|
|
136
138
|
[spacev]: https://github.com/microsoft/SPTAG/tree/main/datasets/SPACEV1B
|
|
137
139
|
[turing]: https://learning2hash.github.io/publications/microsoftturinganns1B/
|
package/docs/index.rst
CHANGED
|
@@ -17,6 +17,14 @@ IO
|
|
|
17
17
|
:members:
|
|
18
18
|
:undoc-members:
|
|
19
19
|
|
|
20
|
+
==========
|
|
21
|
+
Evaluation
|
|
22
|
+
==========
|
|
23
|
+
|
|
24
|
+
.. automodule:: usearch.eval
|
|
25
|
+
:members:
|
|
26
|
+
:undoc-members:
|
|
27
|
+
|
|
20
28
|
======
|
|
21
29
|
Client
|
|
22
30
|
======
|
|
@@ -25,11 +33,10 @@ Client
|
|
|
25
33
|
:members:
|
|
26
34
|
:undoc-members:
|
|
27
35
|
|
|
28
|
-
|
|
29
36
|
======
|
|
30
37
|
Server
|
|
31
38
|
======
|
|
32
39
|
|
|
33
40
|
.. automodule:: usearch.server
|
|
34
41
|
:members:
|
|
35
|
-
:undoc-members:
|
|
42
|
+
:undoc-members:
|
package/golang/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# USearch for GoLang
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```golang
|
|
6
|
+
import (
|
|
7
|
+
"github.com/unum-cloud/usearch/golang"
|
|
8
|
+
)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quickstart
|
|
12
|
+
|
|
13
|
+
```golang
|
|
14
|
+
package main
|
|
15
|
+
|
|
16
|
+
import (
|
|
17
|
+
"fmt"
|
|
18
|
+
"github.com/unum-cloud/usearch/golang"
|
|
19
|
+
)
|
|
20
|
+
|
|
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)
|
|
27
|
+
}
|
|
28
|
+
```
|