Skip to main content

Smaller & Faster Single-File Vector Search Engine from Unum

Project description

USearch

Smaller & Faster Single-File
Vector Search Engine


Discord     LinkedIn     Twitter     Blog     GitHub

Euclidean • Angular • Jaccard • Hamming • Haversine • User-Defined Metrics
C++ 11Python 3JavaScriptJavaRustC 99Objective-CSwiftGoLangWolfram
Linux • MacOS • Windows • Docker • WebAssembly


Comparison with FAISS

FAISS is a widely recognized standard for high-performance vector search engines. USearch and FAISS both employ the same HNSW algorithm, but they differ significantly in their design principles. USearch is compact and broadly compatible without sacrificing performance, with a primary focus on user-defined metrics and fewer dependencies.

FAISS USearch
Implementation 84 K SLOC in faiss/ 3 K SLOC in usearch/
Supported metrics 9 fixed metrics Any User-Defined metrics
Supported ID types uint32_t, uint64_t uint32_t, uint40_t, uint64_t
Dependencies BLAS, OpenMP None
Bindings SWIG Native
Acceleration Learned Quantization Downcasting

Base functionality is identical to FAISS, and the interface must be familiar if you have ever investigated Approximate Nearest Neighbors search:

$ pip install usearch numpy

import numpy as np
from usearch.index import Index

index = Index(
    ndim=3, # Define the number of dimensions in input vectors
    metric='cos', # Choose 'l2sq', 'haversine' or other metric, default = 'ip'
    dtype='f32', # Quantize to 'f16' or 'i8' if needed, default = 'f32'
    connectivity=16, # Optional: How frequent should the connections in the graph be
    expansion_add=128, # Optional: Control the recall of indexing
    expansion_search=64, # Optional: Control the quality of search
)

vector = np.array([0.2, 0.6, 0.4])
index.add(42, vector)
matches: Matches = index.search(vector, 10)

assert len(index) == 1
assert len(matches) == 1
assert matches[0].key == 42
assert matches[0].distance <= 0.001
assert np.allclose(index[42], vector)

User-Defined Functions

While most vector search packages concentrate on just a couple of metrics - "Inner Product distance" and "Euclidean distance," USearch extends this list to include any user-defined metrics. This flexibility allows you to customize your search for a myriad of applications, from computing geo-spatial coordinates with the rare Haversine distance to creating custom metrics for composite embeddings from multiple AI models.

USearch: Vector Search Approaches

Unlike older approaches indexing high-dimensional spaces, like KD-Trees and Locality Sensitive Hashing, HNSW doesn't require vectors to be identical in length. They only have to be comparable. So you can apply it in obscure applications, like searching for similar sets or fuzzy text matching, using GZip as a distance function.

Read more about JIT and UDF in USearch Python SDK.

Memory Efficiency, Downcasting, and Quantization

Training a quantization model and dimension-reduction is a common approach to accelerate vector search. Those, however, are only sometimes reliable, can significantly affect the statistical properties of your data, and require regular adjustments if your distribution shifts.

USearch uint40_t support

Instead, we have focused on high-precision arithmetic over low-precision downcasted vectors. The same index, and add and search operations will automatically down-cast or up-cast between f32_t, f16_t, f64_t, and i8_t representations, even if the hardware doesn't natively support it. Continuing the topic of memory efficiency, we provide a uint40_t to allow collection with over 4B+ vectors without allocating 8 bytes for every neighbor reference in the proximity graph.

FAISS, f32 USearch, f32 USearch, f16 USearch, i8
Batch Insert 16 K/s 73 K/s 100 K/s 104 K/s +550%
Batch Search 82 K/s 103 K/s 113 K/s 134 K/s +63%
Bulk Insert 76 K/s 105 K/s 115 K/s 202 K/s +165%
Bulk Search 118 K/s 174 K/s 173 K/s 304 K/s +157%
Recall @ 10 99% 99.2% 99.1% 99.2%

Dataset: 1M vectors sample of the Deep1B dataset. Hardware: c7g.metal AWS instance with 64 cores and DDR5 memory. HNSW was configured with identical hyper-parameters: connectivity M=16, expansion @ construction efConstruction=128, and expansion @ search ef=64. Batch size is 256. Both libraries were compiled for the target architecture. Jump to the Performance Tuning section to read about the effects of those hyper-parameters.

Disk-based Indexes

With USearch, you can serve indexes from external memory, enabling you to optimize your server choices for indexing speed and serving costs. This can result in 20x cost reduction on AWS and other public clouds.

index.save("index.usearch")

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

other_view = Index(ndim=..., metric=CompiledMetric(...))
other_view.view("index.usearch")

Exact, Approximate, and Multi-Index Lookups

Approximate search methods, such as HNSW, are predominantly used when an exact brute-force search becomes too resource-intensive. This typically occurs when you have millions of entries in a collection. For smaller collections, we offer a more direct approach with the search method.

from usearch.index import search, MetricKind, Matches, BatchMatches
import numpy as np

# Generate 10'000 random vectors with 1024 dimensions
vectors = np.random.rand(10_000, 1024).astype(np.float32)
vector = np.random.rand(1024).astype(np.float32)

one_in_many: Matches = search(vectors, vector, 50, MetricKind.L2sq, exact=True)
many_in_many: BatchMatches = search(vectors, vectors, 50, MetricKind.L2sq, exact=True)

By passing the exact=True argument, the system bypasses indexing altogether and performs a brute-force search through the entire dataset using SIMD-optimized similarity metrics from SimSIMD. When compared to FAISS's IndexFlatL2 in Google Colab, USearch may offer up to a 20x performance improvement:

  • faiss.IndexFlatL2: 55.3 ms.
  • usearch.index.search: 2.54 ms.

For larger workloads targeting billions or even trillions of vectors, parallel multi-index lookups become invaluable. These lookups prevent the need to construct a single, massive index, allowing users to query multiple smaller ones instead.

from usearch.index import Indexes

multi_index = Indexes(
    indexes: Iterable[usearch.index.Index] = [...],
    paths: Iterable[os.PathLike] = [...],
    view: bool = False,
    threads: int = 0,
)
multi_index.search(...)

Joins, One-to-One, One-to-Many, and Many-to-Many Mappings

One of the big questions these days is how will AI change the world of databases and data management. Most databases are still struggling to implement high-quality fuzzy search, and the only kind of joins they know are deterministic. A join is different from searching for every entry, as it requires a one-to-one mapping, banning collisions among separate search results.

Exact Search Fuzzy Search Semantic Search ?
Exact Join Fuzzy Join ? Semantic Join ??

Using USearch one can implement sub-quadratic complexity approximate, fuzzy, and semantic joins. This can come in handy in any fuzzy-matching tasks, common to Database Management Software.

men = Index(...)
women = Index(...)
pairs: dict = men.join(women, max_proposals=0, exact=False)

Read more in post: From Dating to Vector Search - "Stable Marriages" on a Planetary Scale 👩‍❤️‍👨

Functionality

By now, the core functionality is supported across all bindings. Broader functionality is ported per request.

C++ 11 Python 3 C 99 Java JavaScript Rust GoLang Swift
Add, search
Save, load, view
User-defined metrics
Joins
Variable-length vectors
4B+ capacities

Application Examples

USearch + AI = Multi-Modal Semantic Search

AI has a growing number of applications, but one of the coolest classic ideas is to use it for Semantic Search. One can take an encoder model, like the multi-modal UForm, and a web-programming framework, like UCall, and build a text-to-image search platform in just 20 lines of Python.

import ucall
import uform
import usearch

import numpy as np
import PIL as pil

server = ucall.Server()
model = uform.get_model('unum-cloud/uform-vl-multilingual')
index = usearch.index.Index(ndim=256)

@server
def add(key: int, photo: pil.Image.Image):
    image = model.preprocess_image(photo)
    vector = model.encode_image(image).detach().numpy()
    index.add(key, vector.flatten(), copy=True)

@server
def search(query: str) -> np.ndarray:
    tokens = model.preprocess_text(query)
    vector = model.encode_text(tokens).detach().numpy()
    matches = index.search(vector.flatten(), 3)
    return matches.keys

server.run()

We have pre-processed some commonly used datasets, cleaned the images, produced the vectors, and pre-built the index.

Dataset Modalities Images Download
Unsplash 25K Images & Descriptions 25 K HuggingFace / Unum
Conceptual Captions 3M Images & Descriptions 3 M HuggingFace / Unum
Arxiv 2M Titles & Abstracts 2 M HuggingFace / Unum

USearch + RDKit = Molecular Search

Comparing molecule graphs and searching for similar structures is expensive and slow. It can be seen as a special case of the NP-Complete Subgraph Isomorphism problem. Luckily, domain-specific approximate methods exist. The one commonly used in Chemistry, is to generate structures from SMILES, and later hash them into binary fingerprints. The latter are searchable with bitwise similarity metrics, like the Tanimoto coefficient. Below is an example using the RDKit package.

from usearch.index import Index, MetricKind
from rdkit import Chem
from rdkit.Chem import AllChem

import numpy as np

molecules = [Chem.MolFromSmiles('CCOC'), Chem.MolFromSmiles('CCO')]
encoder = AllChem.GetRDKitFPGenerator()

fingerprints = np.vstack([encoder.GetFingerprint(x) for x in molecules])
fingerprints = np.packbits(fingerprints, axis=1)

index = Index(ndim=2048, metric=MetricKind.Tanimoto)
keys = np.arange(len(molecules))

index.add(keys, fingerprints)
matches = index.search(fingerprints, 10)

Integrations

  • GPT-Cache.
  • LangChain.
  • ClickHouse.
  • Microsoft Semantic Kernel.

Citations

@software{Vardanian_USearch_2022,
doi = {10.5281/zenodo.7949416},
author = {Vardanian, Ash},
title = {{USearch by Unum Cloud}},
url = {https://github.com/unum-cloud/usearch},
version = {0.13.0},
year = {2022}
month = jun,
}

Project details


Release history Release notifications | RSS feed

This version

1.1.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

usearch-1.1.1-cp311-cp311-win_amd64.whl (213.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

usearch-1.1.1-cp311-cp311-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

usearch-1.1.1-cp311-cp311-manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

usearch-1.1.1-cp311-cp311-macosx_11_0_arm64.whl (331.6 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

usearch-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl (340.7 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

usearch-1.1.1-cp311-cp311-macosx_10_9_universal2.whl (643.1 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

usearch-1.1.1-cp310-cp310-win_amd64.whl (212.8 kB view details)

Uploaded CPython 3.10 Windows x86-64

usearch-1.1.1-cp310-cp310-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

usearch-1.1.1-cp310-cp310-manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

usearch-1.1.1-cp310-cp310-macosx_11_0_arm64.whl (330.4 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

usearch-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl (339.3 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

usearch-1.1.1-cp310-cp310-macosx_10_9_universal2.whl (640.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

usearch-1.1.1-cp39-cp39-win_amd64.whl (212.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

usearch-1.1.1-cp39-cp39-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

usearch-1.1.1-cp39-cp39-manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

usearch-1.1.1-cp39-cp39-macosx_11_0_arm64.whl (330.6 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

usearch-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl (339.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

usearch-1.1.1-cp39-cp39-macosx_10_9_universal2.whl (641.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

usearch-1.1.1-cp38-cp38-win_amd64.whl (212.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

usearch-1.1.1-cp38-cp38-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

usearch-1.1.1-cp38-cp38-manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

usearch-1.1.1-cp38-cp38-macosx_11_0_arm64.whl (330.4 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

usearch-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl (339.3 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

usearch-1.1.1-cp38-cp38-macosx_10_9_universal2.whl (640.9 kB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

usearch-1.1.1-cp37-cp37m-win_amd64.whl (213.7 kB view details)

Uploaded CPython 3.7m Windows x86-64

usearch-1.1.1-cp37-cp37m-manylinux_2_28_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ x86-64

usearch-1.1.1-cp37-cp37m-manylinux_2_28_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ ARM64

usearch-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl (335.8 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file usearch-1.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: usearch-1.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 213.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for usearch-1.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ebc34eb7cf0b9f7e52b0f176c48d374f19668ad9653533bdd2e5be1463435d66
MD5 7a5c1702aac6e91ef3d1926400f0fbd1
BLAKE2b-256 7639822b881a81f08e8f092df20b930a1442c6cfd7b1435d4e64a77d62cf73da

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42711bad96f487f5d31ac7be1685797fb4b26904328bc855182e8d6c83b9e538
MD5 238ca44f6ad2db3733524b810140727e
BLAKE2b-256 29015f292f98f61c9346a44eaf164d65c3d2887dab6f46c22bcd025bad704156

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e1bb1b238390cc990d051a07fe2a0f173e60bc9e82b7f0f34eb9ddf5bef2b1f8
MD5 d091a73856468418513d3cc592952792
BLAKE2b-256 b1937577bbb4027779255e7e2810844edc8c10b16439b5f4310c4dc5c8d96576

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7027cdc4c733d6926fc2a58e77cb9b14528a3f585b5d738ad6c5f14dc6e027ca
MD5 c8d2b89ef11d802a1ffcfce775f4c488
BLAKE2b-256 d1703abcbe4689bb869e08c3d9dca1e777b2b04c8820d056821a26bbd5eb9185

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c7e1f81a92f3fcc091400f2997b7b12b6d53f7abf4edf87e8a17b5eede350431
MD5 bd431699d296b2ed24839d6ee01c7c23
BLAKE2b-256 a02430ddf4334caf59de6412bfc8458955f34299222888a3cc4fd8c8a9ab6e5a

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7fbb82767109d03c807678664ab02383e31db778adb1d3602da347613fdbf15e
MD5 5e1e5e454ad9fd846a9b9dfcb9657dbb
BLAKE2b-256 45706a77eefcb58a448a89b2545e274af39cbc46d46a763ec18adda0a1b3830a

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: usearch-1.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 212.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for usearch-1.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 eb731f74a7a8208e0fa5b04d9488d1dfc177e253b9c761687cb51d38138d5b93
MD5 de42610805d2be0fd2fa85f070b814f8
BLAKE2b-256 67235d2388b36aa6fd3d619c0ae9de0ae5fcf8b92245988e1204e5c705ecddd6

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6230b0583779f43dba2da3865dd398f8cf88daa6427d60afff3348bbdea6652f
MD5 c3dd47f4111a03ade19c33da7cab1e0e
BLAKE2b-256 f7e1f21395843e5a4c9e8513d7f5369845a5b3f7462307a60870d3cc0de9ae85

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5be4ede1592b056714e3f529cd17e69907364e3c0ee6eee5cf1498f946f0c2ec
MD5 88daff00e4a0364109574e84b8d2cd8c
BLAKE2b-256 0dae2561f8bdf0e90d5de4dfa2767b11714697d9d0cf2043f681a79b1cf8cf42

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8692dbd0b66874e6b01e2dd7c50216347f52d175bc7e072712a5e0646ec9295b
MD5 cb06c40467412df5f585b0500acc53ab
BLAKE2b-256 e01605a21f14179836f8711a064f84cfa38531c5a7f4d3cb0e5ee09a3294055c

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bf2d8246a23e5a232a9389f4efd25e0bd10624a96f0f95d0cd415945a6be84ee
MD5 10b4e914df5177635d8a2760c1ad87cc
BLAKE2b-256 491550c0cfc03b7e8e550e7fa0e25868508a972707296253123203071638edf5

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1a68a223be42573a036c76e516f30c076b16dd38d8cfe9ca79a1cc0e4d60e8a8
MD5 5e170e8817e5a60f27cc4567faf2221b
BLAKE2b-256 01c9bac1435ed2441a61ec0c1d33725a2d9d37f42426636225e597c1ddb4fc98

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: usearch-1.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 212.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for usearch-1.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8300ba31fcc3ace452429781f517273e1297a5881cff629e2f1c6a3a411a48fc
MD5 540f75a8c540f7ac9c1d2c1130f13d68
BLAKE2b-256 b25a7c0d59fd9b3c9032e080449874c081212f4d1ccf74b6522d36698068d262

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 02167b0c03062a6d28926535ee862401669b6d6f303e99d2cd1232dc610d2a25
MD5 548f282a3316a9f60f468d34f835a797
BLAKE2b-256 b21f92212911a8bfd1a3dbfeb0f6a6574f0b86122490770359914b368af7582a

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6d84c5771aa37584a335f4b3392185782da785733aab4c3a4ae9949434cbe679
MD5 b73739cbc633c983d0cbeb3dcc056f9b
BLAKE2b-256 57974f10a45afcf9e7124ea25095017d90b29257d205a4ada0af2416590c7793

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9bb5464473e8ceeef6237285fc0e86a0b77a75304397db3365cb011761fd6abe
MD5 3206d9226cc7097f442bec834a2fd743
BLAKE2b-256 b3d7b5eb3cca0e3d79d26d5ee7d468cbd1b2f1818afb0f5ceedefc8d102eb11c

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 33255b29bd7fc1feb6584887f6489bf9f896bd9d79b9ce423ff7185b2c2059e5
MD5 dba0beb7b0c16537ad751dfc9368663f
BLAKE2b-256 977bed49c3f714ece658c4ab2ef32b886e4be74aea50cf71acaea7285fd85b03

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 12121e7ac82868877ae9e6b513a61c1113afc8a28d793f9350719ef94ac33091
MD5 791741e4a407a978a41d5a4ce251f412
BLAKE2b-256 d7becc2b8bd51c23918f150902c994bbc27db17d078af9eb97d2e9f07e52645e

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: usearch-1.1.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 212.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for usearch-1.1.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b0338b054fde34ab0a42a786bae43ae1793412995f6a87122850fc0318cb5955
MD5 4fb7e4458084d20e4c270359b965bddc
BLAKE2b-256 27e8116ffbeefc0b526d7effdec8d0d924495cb52a910d3b6448dc6ccaa0e70b

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 479fcf8b884d1a822b83c7cfb853c090f0db4386e86ef790f2c820f96de70140
MD5 68b511fe65549006796e626618feaee2
BLAKE2b-256 6641cd1836284517d876ca721d7208b28e55ceac22fa5d8ce05a18f89fef5c3b

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b8040aa9f448ddfaac5528ec1a1c216351cf7a17af35ddf169b239282f7fa4c4
MD5 9515c55a8099fdb328fbed934dcbe036
BLAKE2b-256 7abb54034e7894ddf29c7d1901486bff85c4ec975bdb22f1b244a8a6ec024ac0

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbd08ecbf2225f16b9f4b8190cff53de372baddc173e5ba7854425392552013b
MD5 8131e26c0536d7e2c144d3783d193fc1
BLAKE2b-256 b503df3474509e436f3ab5d7c756adb58caf2c0167d62392aae88dbe3a5f5397

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0f1e58d11d9dfe1d499e86c108a21f7deb85fe4f40e54b042e057b5df5ead036
MD5 41003771cbe7545173a28b85e04c61ee
BLAKE2b-256 220acd0e493be6fd0d2c308d22a011bc84ebaba3214b8dfcd512ae31e7504a59

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5112ebd545ad63b7a63d68838da8a56cfcd313c9ade86bfbe30061c946cbc5dc
MD5 6f9a1c54481baa06943926b9f266f798
BLAKE2b-256 45a8a51d48276a575b52c1bb241db97deec6e225f5d251f71cfcf6e2e462caad

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: usearch-1.1.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 213.7 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for usearch-1.1.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 70d1f5148a1032da5b0e6651371d29643bf302c0d24a2896d6969d504fccac15
MD5 b82b735d911644eb6ef3922e64064f7e
BLAKE2b-256 197fd1ac9279721ab2b91acf44a4a2e73216b7349a19712eaf6a58c23152fb3b

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp37-cp37m-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a59dfd5d848c484448470e613514f636cf42acac3eab1a9fb9b98d9511de2a97
MD5 46ede11ce46cfb360132d91fadbb5d76
BLAKE2b-256 cda919b4fa84965d36ec06e3261da6e7be2258d666f0c5d9f77a9fafe59f4889

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp37-cp37m-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp37-cp37m-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 918830e1876064227f0a6a17bd4f92c985d8df4856b0370c7729b6e43721b3cc
MD5 f91ad92ecd9ade57f8e3c16c2b441d2b
BLAKE2b-256 7a643fdf4a5cb2aada4c3edc8a2fa6a152868a2fef4e7a98cc4b9db02ac7c52d

See more details on using hashes here.

File details

Details for the file usearch-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for usearch-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 36059015e49f9ea303a1d823b80113ce96833330563a54ceac447e4218d63a2c
MD5 0f51b63a0da25aa673a0ca7ee82bec7d
BLAKE2b-256 3a7c53c2322f85219183e252ff7532bc22dee9014b0a66d60ce5dcd044e65155

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page