usearch 0.22.0 → 0.22.2

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.
@@ -271,11 +271,18 @@ jobs:
271
271
  tags: ${{ steps.meta.outputs.tags }}
272
272
  labels: ${{ steps.meta.outputs.labels }}
273
273
 
274
- build_publish_wasm:
274
+ publish_wasm:
275
275
  name: WASM Build
276
+ needs: versioning
276
277
  runs-on: ubuntu-latest
278
+ permissions:
279
+ contents: read
280
+ packages: write
281
+
277
282
  steps:
278
283
  - uses: actions/checkout@v3
284
+ with:
285
+ ref: 'main'
279
286
  - run: git submodule update --init --recursive
280
287
 
281
288
  - name: Prepare WASM Environment
@@ -288,23 +295,19 @@ jobs:
288
295
  ./emsdk/emsdk activate latest && source ./emsdk/emsdk_env.sh
289
296
  emcmake cmake -DUSEARCH_BUILD_TEST=0 -DUSEARCH_BUILD_BENCHMARK=0 -DUSEARCH_BUILD_WASM=1 -B ./build && emmake make -C ./build
290
297
 
291
- - name: Install wasmer cli
298
+ - name: Trigger Wasmer.io CLI
292
299
  run: |
293
300
  curl https://get.wasmer.io -sSfL | sh
294
301
  source ~/.wasmer/wasmer.sh
295
-
296
- - name: Login Wasmer.io
297
- run: wasmer login --token "${{ secrets.WASMER_TOKEN }}"
298
-
299
- - name: Publish binary to Wasmer.io
300
- run: wasmer publish
302
+ wasmer login "${{ secrets.WASMER_TOKEN }}"
303
+ wasmer publish
301
304
 
302
305
 
303
306
  build_docs:
304
307
  name: Build Docs
305
308
  runs-on: ubuntu-22.04
306
309
  if: ${{ always() }}
307
- needs: [publish_python, publish_javascript, publish_rust, publish_java, publish_swift, publish_docker]
310
+ needs: [publish_python, publish_javascript, publish_rust, publish_java, publish_swift, publish_docker, publish_wasm]
308
311
  permissions:
309
312
  contents: write
310
313
  steps:
@@ -340,6 +343,7 @@ jobs:
340
343
  name: github-pages
341
344
  url: ${{ steps.deployment.outputs.page_url }}
342
345
  runs-on: ubuntu-22.04
346
+ if: ${{ always() }}
343
347
  needs: build_docs
344
348
  steps:
345
349
  - uses: robinraju/release-downloader@v1.8
@@ -361,6 +365,7 @@ jobs:
361
365
  deploy_docs_vercel:
362
366
  name: Deploy Vercel
363
367
  runs-on: ubuntu-22.04
368
+ if: ${{ always() }}
364
369
  needs: build_docs
365
370
  steps:
366
371
  - name: Notify Vercel
package/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "usearch"
3
- version = "0.22.0"
3
+ version = "0.22.2"
4
4
  authors = ["Ashot Vardanian <1983160+ashvardanian@users.noreply.github.com>"]
5
5
  description = "Smaller & Faster Single-File Vector Search Engine from Unum"
6
6
  edition = "2021"
package/README.md CHANGED
@@ -20,34 +20,35 @@ Vector Search Engine<br/>
20
20
  <p align="center">
21
21
  Euclidean • Angular • Jaccard • Hamming • Haversine • User-Defined Metrics
22
22
  <br/>
23
- <a href="#c++">C++11</a> •
24
- <a href="#python">Python</a> •
25
- <a href="#javascript">JavaScript</a> •
26
- <a href="#java">Java</a> •
27
- <a href="#rust">Rust</a> •
28
- <a href="#objective-c">Objective-C</a> •
29
- <a href="#swift">Swift</a> •
30
- <a href="#golang">GoLang</a> •
31
- <a href="#wolfram">Wolfram</a>
23
+ <a href="https://unum-cloud.github.io/usearch/cpp">C++11</a> •
24
+ <a href="https://unum-cloud.github.io/usearch/python">Python</a> •
25
+ <a href="https://unum-cloud.github.io/usearch/javascript">JavaScript</a> •
26
+ <a href="https://unum-cloud.github.io/usearch/java">Java</a> •
27
+ <a href="https://unum-cloud.github.io/usearch/rust">Rust</a> •
28
+ <a href="https://unum-cloud.github.io/usearch/c">C99</a> •
29
+ <a href="https://unum-cloud.github.io/usearch/objective-c">Objective-C</a> •
30
+ <a href="https://unum-cloud.github.io/usearch/swift">Swift</a> •
31
+ <a href="https://unum-cloud.github.io/usearch/golang">GoLang</a> •
32
+ <a href="https://unum-cloud.github.io/usearch/wolfram">Wolfram</a>
32
33
  <br/>
33
- Linux • MacOS • Windows • Docker • WebAssembly 🔜
34
+ Linux • MacOS • Windows • Docker • WebAssembly
34
35
  </p>
35
36
 
36
37
  ---
37
38
 
38
- - [x] Benchmark-topping performance.
39
- - [x] Simple and extensible [single C++11 header][usearch-header] implementation.
40
- - [x] SIMD-optimized and [user-defined metrics](#user-defined-functions) with JIT-compilation.
41
- - [x] Variable dimensionality vectors for unique applications, including GIS and Chess.
42
- - [x] Advanced bitwise Tanimoto and Sorensen coefficients ideal for Genomics and Chemistry.
43
- - [x] On-the-fly support for [half-precision `f16` and quarter-precision `f8`](#memory-efficiency-downcasting-and-quantization), compatible with any hardware.
44
- - [x] [View large indexes from disk](#disk-based-indexes) without loading into RAM.
45
- - [x] Space-efficient point-clouds with `uint40_t`, accommodating 4B+ size.
46
- - [x] Optimized for concurrent threading, like OpenMP or C++23 executors with bring your threads.
47
- - [x] Support for multiple vectors per label.
48
- - [ ] On-the-fly deletions.
49
- - [x] Utilize [USearch and UForm Transformers for Semantic Search](#usearch--ai--multi-modal-semantic-search).
50
- - [x] Combine [USearch and RDKit for Molecule Search](#usearch--rdkit--molecular-search).
39
+ - ✅ Benchmark-topping performance.
40
+ - ✅ Simple and extensible [single C++11 header][usearch-header] implementation.
41
+ - ✅ SIMD-optimized and [user-defined metrics](#user-defined-functions) with JIT-compilation.
42
+ - ✅ Variable dimensionality vectors for unique applications, including GIS and Chess.
43
+ - ✅ Advanced bitwise Tanimoto and Sorensen coefficients ideal for Genomics and Chemistry.
44
+ - ✅ On-the-fly support for [half-precision `f16` and quarter-precision `f8`](#memory-efficiency-downcasting-and-quantization), compatible with any hardware.
45
+ - ✅ [View large indexes from disk](#disk-based-indexes) without loading into RAM.
46
+ - ✅ Space-efficient point-clouds with `uint40_t`, accommodating 4B+ size.
47
+ - ✅ Optimized for concurrent threading, like OpenMP or C++23 executors with bring your threads.
48
+ - ✅ Support for multiple vectors per label.
49
+ - ✅ On-the-fly deletions.
50
+ - ✅ Utilize [USearch and UForm Transformers for Semantic Search](#usearch--ai--multi-modal-semantic-search).
51
+ - ✅ Combine [USearch and RDKit for Molecule Search](#usearch--rdkit--molecular-search).
51
52
 
52
53
  [usearch-header]: https://github.com/unum-cloud/usearch/blob/main/include/usearch/index.hpp
53
54
  [obscure-use-cases]: https://ashvardanian.com/posts/abusing-vector-search
@@ -153,9 +154,7 @@ This can result in **20x costs reduction** on AWS and other public clouds.
153
154
  ```py
154
155
  index.save("index.usearch")
155
156
 
156
- direct_copy = index.copy()
157
157
  loaded_copy = index.load("index.usearch")
158
-
159
158
  view = Index.restore("index.usearch", view=True)
160
159
 
161
160
  other_view = Index(ndim=..., metric=CompiledMetric(...))
@@ -234,16 +233,19 @@ server.run()
234
233
 
235
234
  We have pre-processed some commonly used datasets, cleaning the images, producing the vectors, and pre-building the index.
236
235
 
237
- | Dataset | Size | Images | Preprocessed |
238
- | :----------------------------------- | ---: | -----: | --------------------: |
239
- | [Unsplash 25K][unsplash-25k-origin] | - | 25 K | [HF][unsplash-25k-hf] |
240
- | [Createve Captions 3M][cc-3m-origin] | - | 3 M | [HF][cc-3m-hf] |
236
+ | Dataset | Modalities | Images | Download |
237
+ | :------------------------------------- | --------------------: | -----: | ------------------------------------: |
238
+ | [Unsplash 25K][unsplash-25k-origin] | Images & Descriptions | 25 K | [HuggingFace / Unum][unsplash-25k-hf] |
239
+ | [Conceptual Captions 3M][cc-3m-origin] | Images & Descriptions | 3 M | [HuggingFace / Unum][cc-3m-hf] |
240
+ | [Arxiv 2M][arxiv-2m-origin] | Titles & Abstracts | 2 M | [HuggingFace / Unum][arxiv-2m-hf] |
241
241
 
242
+ [unsplash-25k-origin]: https://github.com/unsplash/datasets
243
+ [cc-3m-origin]: https://huggingface.co/datasets/conceptual_captions
244
+ [arxiv-2m-origin]: https://www.kaggle.com/datasets/Cornell-University/arxiv
242
245
 
243
- [unsplash-25k-origin]: https://unum.cloud
244
- [cc-3m-origin]: https://unum.cloud
245
- [unsplash-25k-hf]: https://unum.cloud
246
- [cc-3m-hf]: https://unum.cloud
246
+ [unsplash-25k-hf]: https://huggingface.co/datasets/unum-cloud/ann-unsplash-25k
247
+ [cc-3m-hf]: https://huggingface.co/datasets/unum-cloud/ann-cc-3m
248
+ [arxiv-2m-hf]: https://huggingface.co/datasets/unum-cloud/ann-arxiv-2m
247
249
 
248
250
  ### USearch + RDKit = Molecular Search
249
251
 
@@ -286,7 +288,7 @@ matches = index.search(fingerprints, 10)
286
288
  ## Integrations
287
289
 
288
290
  - [x] GPT-Cache.
289
- - [ ] Langchain.
291
+ - [ ] LangChain.
290
292
  - [ ] Microsoft Semantic Kernel.
291
293
  - [ ] PyTorch.
292
294
 
package/conanfile.py CHANGED
@@ -4,7 +4,7 @@ from conans import ConanFile
4
4
  class USearchConan(ConanFile):
5
5
 
6
6
  name = 'USearch'
7
- version = '0.22.0'
7
+ version = '0.22.2'
8
8
  license = 'Apache 2.0'
9
9
  url = 'https://github.com/unum-cloud/usearch'
10
10
  description = 'Smaller & Faster Single-File Vector Search Engine from Unum'
@@ -3,4 +3,4 @@ GoLang SDK
3
3
  ==============
4
4
 
5
5
 
6
- .. mdinclude:: ../golang/README.md
6
+ .. mdinclude:: ../../golang/README.md
package/docs/index.rst CHANGED
@@ -16,12 +16,13 @@ Overview
16
16
 
17
17
  cpp/index
18
18
  python/index
19
- java/index
20
19
  javascript/index
20
+ java/index
21
21
  rust/index
22
- swift/index
23
22
  c/index
23
+ swift/index
24
24
  golang/index
25
+ wolfram/index
25
26
 
26
27
  .. toctree::
27
28
  :hidden:
@@ -3,7 +3,7 @@ JavaScript SDK
3
3
  ==============
4
4
 
5
5
 
6
- .. mdinclude:: ../javascript/README.md
6
+ .. mdinclude:: ../../javascript/README.md
7
7
 
8
8
  .. toctree::
9
9
  :hidden:
@@ -3,7 +3,7 @@ Python SDK
3
3
  ==============
4
4
 
5
5
 
6
- .. mdinclude:: ../python/README.md
6
+ .. mdinclude:: ../../python/README.md
7
7
 
8
8
  .. toctree::
9
9
  :hidden:
@@ -3,4 +3,4 @@ Rust SDK
3
3
  ==============
4
4
 
5
5
 
6
- .. mdinclude:: ../rust/README.md
6
+ .. mdinclude:: ../../rust/README.md
@@ -3,4 +3,4 @@ Swift SDK
3
3
  ==============
4
4
 
5
5
 
6
- .. mdinclude:: ../swift/README.md
6
+ .. mdinclude:: ../../swift/README.md
@@ -2,10 +2,19 @@
2
2
 
3
3
  ## Installation
4
4
 
5
+ USearch is available both for Node.js backend runtime and WASM frontend runtime.
6
+ For first use the conventional `npm install`:
7
+
5
8
  ```sh
6
9
  npm install usearch
7
10
  ```
8
11
 
12
+ For latter:
13
+
14
+ ```sh
15
+
16
+ ```
17
+
9
18
  ## Quickstart
10
19
 
11
20
  ```js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "usearch",
3
- "version": "0.22.0",
3
+ "version": "0.22.2",
4
4
  "description": "Smaller & Faster Single-File Vector Search Engine from Unum",
5
5
  "author": "Ashot Vardanian",
6
6
  "license": "Apache 2.0",
package/wasm/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # USearch for WebAssembly
2
+
3
+ ## Installation
4
+
5
+ ```txt
6
+ https://github.com/unum-cloud/usearch
7
+ ```
8
+
9
+ ## Quickstart
10
+
11
+ ```wolfram
12
+
13
+ ```
@@ -0,0 +1,13 @@
1
+ # USearch for Wolfram
2
+
3
+ ## Installation
4
+
5
+ ```txt
6
+ https://github.com/unum-cloud/usearch
7
+ ```
8
+
9
+ ## Quickstart
10
+
11
+ ```wolfram
12
+
13
+ ```