Skip to content

Commit

Permalink
Merge pull request #152 from unum-cloud/main-dev
Browse files Browse the repository at this point in the history
Fix: Wasmer.io publication and docs paths
  • Loading branch information
ashvardanian authored Jul 19, 2023
2 parents ccb47f4 + ad50717 commit f1d26e5
Show file tree
Hide file tree
Showing 11 changed files with 91 additions and 50 deletions.
21 changes: 12 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -271,11 +271,18 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

build_publish_wasm:
publish_wasm:
name: WASM Build
needs: versioning
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v3
with:
ref: 'main'
- run: git submodule update --init --recursive

- name: Prepare WASM Environment
Expand All @@ -288,23 +295,19 @@ jobs:
./emsdk/emsdk activate latest && source ./emsdk/emsdk_env.sh
emcmake cmake -DUSEARCH_BUILD_TEST=0 -DUSEARCH_BUILD_BENCHMARK=0 -DUSEARCH_BUILD_WASM=1 -B ./build && emmake make -C ./build
- name: Install wasmer cli
- name: Trigger Wasmer.io CLI
run: |
curl https://get.wasmer.io -sSfL | sh
source ~/.wasmer/wasmer.sh
- name: Login Wasmer.io
run: wasmer login --token "${{ secrets.WASMER_TOKEN }}"

- name: Publish binary to Wasmer.io
run: wasmer publish
wasmer login --token "${{ secrets.WASMER_TOKEN }}"
wasmer publish
build_docs:
name: Build Docs
runs-on: ubuntu-22.04
if: ${{ always() }}
needs: [publish_python, publish_javascript, publish_rust, publish_java, publish_swift, publish_docker]
needs: [publish_python, publish_javascript, publish_rust, publish_java, publish_swift, publish_docker, publish_wasmer]
permissions:
contents: write
steps:
Expand Down
70 changes: 36 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,34 +20,35 @@ Vector Search Engine<br/>
<p align="center">
Euclidean • Angular • Jaccard • Hamming • Haversine • User-Defined Metrics
<br/>
<a href="#c++">C++11</a> •
<a href="#python">Python</a> •
<a href="#javascript">JavaScript</a> •
<a href="#java">Java</a> •
<a href="#rust">Rust</a> •
<a href="#objective-c">Objective-C</a> •
<a href="#swift">Swift</a> •
<a href="#golang">GoLang</a> •
<a href="#wolfram">Wolfram</a>
<a href="https://unum-cloud.github.io/usearch/cpp">C++11</a> •
<a href="https://unum-cloud.github.io/usearch/python">Python</a> •
<a href="https://unum-cloud.github.io/usearch/javascript">JavaScript</a> •
<a href="https://unum-cloud.github.io/usearch/java">Java</a> •
<a href="https://unum-cloud.github.io/usearch/rust">Rust</a> •
<a href="https://unum-cloud.github.io/usearch/c">C99</a> •
<a href="https://unum-cloud.github.io/usearch/objective-c">Objective-C</a> •
<a href="https://unum-cloud.github.io/usearch/swift">Swift</a> •
<a href="https://unum-cloud.github.io/usearch/golang">GoLang</a> •
<a href="https://unum-cloud.github.io/usearch/wolfram">Wolfram</a>
<br/>
Linux • MacOS • Windows • Docker • WebAssembly 🔜
Linux • MacOS • Windows • Docker • WebAssembly
</p>

---

- [x] Benchmark-topping performance.
- [x] Simple and extensible [single C++11 header][usearch-header] implementation.
- [x] SIMD-optimized and [user-defined metrics](#user-defined-functions) with JIT-compilation.
- [x] Variable dimensionality vectors for unique applications, including GIS and Chess.
- [x] Advanced bitwise Tanimoto and Sorensen coefficients ideal for Genomics and Chemistry.
- [x] On-the-fly support for [half-precision `f16` and quarter-precision `f8`](#memory-efficiency-downcasting-and-quantization), compatible with any hardware.
- [x] [View large indexes from disk](#disk-based-indexes) without loading into RAM.
- [x] Space-efficient point-clouds with `uint40_t`, accommodating 4B+ size.
- [x] Optimized for concurrent threading, like OpenMP or C++23 executors with bring your threads.
- [x] Support for multiple vectors per label.
- [ ] On-the-fly deletions.
- [x] Utilize [USearch and UForm Transformers for Semantic Search](#usearch--ai--multi-modal-semantic-search).
- [x] Combine [USearch and RDKit for Molecule Search](#usearch--rdkit--molecular-search).
- Benchmark-topping performance.
- Simple and extensible [single C++11 header][usearch-header] implementation.
- SIMD-optimized and [user-defined metrics](#user-defined-functions) with JIT-compilation.
- Variable dimensionality vectors for unique applications, including GIS and Chess.
- Advanced bitwise Tanimoto and Sorensen coefficients ideal for Genomics and Chemistry.
- On-the-fly support for [half-precision `f16` and quarter-precision `f8`](#memory-efficiency-downcasting-and-quantization), compatible with any hardware.
- [View large indexes from disk](#disk-based-indexes) without loading into RAM.
- Space-efficient point-clouds with `uint40_t`, accommodating 4B+ size.
- Optimized for concurrent threading, like OpenMP or C++23 executors with bring your threads.
- Support for multiple vectors per label.
- On-the-fly deletions.
- Utilize [USearch and UForm Transformers for Semantic Search](#usearch--ai--multi-modal-semantic-search).
- Combine [USearch and RDKit for Molecule Search](#usearch--rdkit--molecular-search).

[usearch-header]: https://github.com/unum-cloud/usearch/blob/main/include/usearch/index.hpp
[obscure-use-cases]: https://ashvardanian.com/posts/abusing-vector-search
Expand Down Expand Up @@ -153,9 +154,7 @@ This can result in **20x costs reduction** on AWS and other public clouds.
```py
index.save("index.usearch")

direct_copy = index.copy()
loaded_copy = index.load("index.usearch")

view = Index.restore("index.usearch", view=True)

other_view = Index(ndim=..., metric=CompiledMetric(...))
Expand Down Expand Up @@ -234,16 +233,19 @@ server.run()

We have pre-processed some commonly used datasets, cleaning the images, producing the vectors, and pre-building the index.

| Dataset | Size | Images | Preprocessed |
| :----------------------------------- | ---: | -----: | --------------------: |
| [Unsplash 25K][unsplash-25k-origin] | - | 25 K | [HF][unsplash-25k-hf] |
| [Createve Captions 3M][cc-3m-origin] | - | 3 M | [HF][cc-3m-hf] |
| Dataset | Modalities | Images | Download |
| :------------------------------------- | --------------------: | -----: | ------------------------------------: |
| [Unsplash 25K][unsplash-25k-origin] | Images & Descriptions | 25 K | [HuggingFace / Unum][unsplash-25k-hf] |
| [Conceptual Captions 3M][cc-3m-origin] | Images & Descriptions | 3 M | [HuggingFace / Unum][cc-3m-hf] |
| [Arxiv 2M][arxiv-2m-origin] | Titles & Abstracts | 2 M | [HuggingFace / Unum][arxiv-2m-hf] |

[unsplash-25k-origin]: https://github.com/unsplash/datasets
[cc-3m-origin]: https://huggingface.co/datasets/conceptual_captions
[arxiv-2m-origin]: https://www.kaggle.com/datasets/Cornell-University/arxiv

[unsplash-25k-origin]: https://unum.cloud
[cc-3m-origin]: https://unum.cloud
[unsplash-25k-hf]: https://unum.cloud
[cc-3m-hf]: https://unum.cloud
[unsplash-25k-hf]: https://huggingface.co/datasets/unum-cloud/ann-unsplash-25k
[cc-3m-hf]: https://huggingface.co/datasets/unum-cloud/ann-cc-3m
[arxiv-2m-hf]: https://huggingface.co/datasets/unum-cloud/ann-arxiv-2m

### USearch + RDKit = Molecular Search

Expand Down Expand Up @@ -286,7 +288,7 @@ matches = index.search(fingerprints, 10)
## Integrations

- [x] GPT-Cache.
- [ ] Langchain.
- [ ] LangChain.
- [ ] Microsoft Semantic Kernel.
- [ ] PyTorch.

Expand Down
2 changes: 1 addition & 1 deletion docs/golang/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ GoLang SDK
==============


.. mdinclude:: ../golang/README.md
.. mdinclude:: ../../golang/README.md
5 changes: 3 additions & 2 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@ Overview

cpp/index
python/index
java/index
javascript/index
java/index
rust/index
swift/index
c/index
swift/index
golang/index
wolfram/index

.. toctree::
:hidden:
Expand Down
2 changes: 1 addition & 1 deletion docs/javascript/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ JavaScript SDK
==============


.. mdinclude:: ../javascript/README.md
.. mdinclude:: ../../javascript/README.md

.. toctree::
:hidden:
Expand Down
2 changes: 1 addition & 1 deletion docs/python/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Python SDK
==============


.. mdinclude:: ../python/README.md
.. mdinclude:: ../../python/README.md

.. toctree::
:hidden:
Expand Down
2 changes: 1 addition & 1 deletion docs/rust/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ Rust SDK
==============


.. mdinclude:: ../rust/README.md
.. mdinclude:: ../../rust/README.md
2 changes: 1 addition & 1 deletion docs/swift/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ Swift SDK
==============


.. mdinclude:: ../swift/README.md
.. mdinclude:: ../../swift/README.md
9 changes: 9 additions & 0 deletions javascript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,19 @@

## Installation

USearch is available both for Node.js backend runtime and WASM frontend runtime.
For first use the conventional `npm install`:

```sh
npm install usearch
```

For latter:

```sh

```

## Quickstart

```js
Expand Down
13 changes: 13 additions & 0 deletions wasm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# USearch for WebAssembly

## Installation

```txt
https://github.com/unum-cloud/usearch
```

## Quickstart

```wolfram
```
13 changes: 13 additions & 0 deletions wolfram/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# USearch for Wolfram

## Installation

```txt
https://github.com/unum-cloud/usearch
```

## Quickstart

```wolfram
```

0 comments on commit f1d26e5

Please sign in to comment.