Smaller & Faster Single-File Vector Search Engine from Unum
Project description
USearch
Smaller & Faster Single-File
Vector Search Engine
Euclidean • Angular • Jaccard • Hamming • Haversine • User-Defined Metrics
C++11 •
Python •
JavaScript •
Java •
Rust •
C99 •
Objective-C •
Swift •
GoLang •
Wolfram
Linux • MacOS • Windows • Docker • WebAssembly
- ✅ Benchmark-topping performance.
- ✅ Simple and extensible single C++11 header implementation.
- ✅ SIMD-optimized and user-defined metrics 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-precisionf8
, compatible with any hardware. - ✅ View large indexes from disk 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.
- ✅ Combine USearch and RDKit for Molecule Search.
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 Neigbors 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 'f8' 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, distances, count = index.search(vector, 10)
assert len(index) == 1
assert count == 1
assert matches[0] == 42
assert distances[0] <= 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.
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.
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 f8_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, f8 |
|
---|---|---|---|---|
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: connectivityM=16
, expansion @ constructionefConstruction=128
, and expansion @ searchef=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 costs 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")
Joins
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 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, core functionality is supported across all bindings. Broader functionality is ported per request.
C++ | Python | Java | JavaScript | Rust | GoLang | Swift | |
---|---|---|---|---|---|---|---|
add/search/remove | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
save/load/view | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
join | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
user-defiend metrics | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
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(label: int, photo: pil.Image.Image):
image = model.preprocess_image(photo)
vector = model.encode_image(image).detach().numpy()
index.add(label, 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.labels
server.run()
We have pre-processed some commonly used datasets, cleaning the images, producing the vectors, and pre-building 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 exists. The one commonly used in Chemistry, is to generate structures from SMILES, and later hash them into binary fingerprints. The later are searchable with bitwise similarity metrics, like the Tanimoto coefficient. Below is na 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)
labels = np.arange(len(molecules))
index.add(labels, fingerprints)
matches = index.search(fingerprints, 10)
TODO
- JavaScript: Allow calling from "worker threads".
- Rust: Allow passing a custom thread ID.
- C# .NET bindings.
Integrations
- GPT-Cache.
- LangChain.
- Microsoft Semantic Kernel.
- PyTorch.
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file usearch-0.22.2-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 195.4 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6b25ecc26ee2e4ae7efb992c8518c44fb0680ab8b661f193717bb1927a54f6 |
|
MD5 | cd82fed4d8af692b653d794f065d44a8 |
|
BLAKE2b-256 | 14bf4f6ffe9ce74b196be81784ec2576d3f463196b4dbecfb2e5c9c3bd25ed0b |
File details
Details for the file usearch-0.22.2-cp311-cp311-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 359.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06308350ea4e61466d3c2e27b01268cf52742a8bfc52fd8de0345c53fe9a7197 |
|
MD5 | 0e585da75882553d253dbc509ae2fce1 |
|
BLAKE2b-256 | 835544a02643bfb5a027cf53842204d220146f792d94a78748609642b17a40e6 |
File details
Details for the file usearch-0.22.2-cp311-cp311-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp311-cp311-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 346.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b9d4345b6c7fd0ec1d47eb851f91cd3dbe02a1f985eefc05c70f3796eac27fe |
|
MD5 | b7a6d70b1e5a7ddc95903c4f53d566c2 |
|
BLAKE2b-256 | bc0640ae70932319e67f118ea434585c130c02db382845ea66ad1fb8645ab29b |
File details
Details for the file usearch-0.22.2-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 253.6 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2c50eba85c11d9ad473e776bfe396f76d5d0d5deaf84138a1d7a563abac3912 |
|
MD5 | 61e19026ba2a13c0da340ecc2750665a |
|
BLAKE2b-256 | e0767abc812553b8174115615a92d8c35dd2b1689a294d8d609fe5781b76f815 |
File details
Details for the file usearch-0.22.2-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 264.7 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f03362baaf7f47204e693f768a7562fd3c31c5d5bd978a294fe47fb55d0cb50e |
|
MD5 | bf614ae259f96844dd76508ba9471526 |
|
BLAKE2b-256 | 474d138a55c142c9f22bffaea95e46907aa24340bbb74b66177352dbdff56fc2 |
File details
Details for the file usearch-0.22.2-cp311-cp311-macosx_10_9_universal2.whl
.
File metadata
- Download URL: usearch-0.22.2-cp311-cp311-macosx_10_9_universal2.whl
- Upload date:
- Size: 491.7 kB
- Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fb31acb06d2a81bedac3c96010a8c4679447996de717a06c8ebab9ad94cc3bf |
|
MD5 | a5f8a45a9fc26675b30e03cdfae79461 |
|
BLAKE2b-256 | bdf30282d998a2a370dceb003f67192ec042dfa5f5f1d230c9c36616c691320f |
File details
Details for the file usearch-0.22.2-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 194.3 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5ade5669e18f10fe62d186109a3fea28b4baed3c9e60f0e9e1e9f4661bad783 |
|
MD5 | bac6a8cfa9b474a41b5900f7c100b657 |
|
BLAKE2b-256 | 498763dee3f05dbf2b0114b8e954ec94c7b47369dca6c4350495aa271605f5d4 |
File details
Details for the file usearch-0.22.2-cp310-cp310-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 358.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffe43f1cc3d7f2d2e14e45725cb48c4d7f428c7316b4589993b195141a7280af |
|
MD5 | 5c8ae1ecc53cf7d77bd73394de2ebd00 |
|
BLAKE2b-256 | 227a1549bea6bf7fa95e4f6001e8187b22ac459dabb2eb1c2a8d8b0533e24e88 |
File details
Details for the file usearch-0.22.2-cp310-cp310-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp310-cp310-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 345.3 kB
- Tags: CPython 3.10, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d34c463e914b73dd181c87cc02cccd1bebc4b9fb8a129c88577ae5209c4b44e |
|
MD5 | b3075d2eac379d7dd147087c7c1a1ac0 |
|
BLAKE2b-256 | 529431db0f73659bec7adb8204e03abefb904abd915aa00f30300c69ba4ecca1 |
File details
Details for the file usearch-0.22.2-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 252.6 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 849107e4c4cd148b2c11d286ee1be81d4a9933340e3729d4c80f4b20ee9b00a5 |
|
MD5 | 479a903fbda656ac475f7e0f7a1b94d4 |
|
BLAKE2b-256 | c61cccb7b76bf9fbaa954a2cd8789e1b6df676bfcb6e1238ff94301aee76520d |
File details
Details for the file usearch-0.22.2-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 263.4 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 876e32c893908003b82d3696360bc1f2458a0e929d490d966d2ec16b9b8d056d |
|
MD5 | ff66ac446228f36460a3c22eb5afe1bb |
|
BLAKE2b-256 | 03f6e51d978fcdb6d39458d03e280bc09a3319ae3405d4c628475869cc5cb3d6 |
File details
Details for the file usearch-0.22.2-cp310-cp310-macosx_10_9_universal2.whl
.
File metadata
- Download URL: usearch-0.22.2-cp310-cp310-macosx_10_9_universal2.whl
- Upload date:
- Size: 489.7 kB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5afe019c108d3180a0b6dae5edf6f69461545c081af89cc4f2ac6fcfbcc1bac |
|
MD5 | 0db076577e89d3741a27841ae861d331 |
|
BLAKE2b-256 | 4bd0c4b9e0952bea692d45d7c6c777d32ad0f11e2fc8f0b8a103b17906210caa |
File details
Details for the file usearch-0.22.2-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 194.4 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c156072fc3566536358774854be6acd8579ea33126df274dcb7da81424a03a41 |
|
MD5 | db0650957a48c1f4e81fc8d6088e1373 |
|
BLAKE2b-256 | 7fd92273db43353eea54053e196cd8b6132245b9905d4471f9df875ad5a2a3fc |
File details
Details for the file usearch-0.22.2-cp39-cp39-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp39-cp39-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 358.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a328d45d5e4bc049786b2996c23ffdac91aae48949332a6a5e155e4c32de3f24 |
|
MD5 | d34cbfedc1b1b7ee39f7c9f8185180b7 |
|
BLAKE2b-256 | 0a6e1bfe3f6eb6f12c9510b30ffc90f4aa575367eb34f18a26ceecdb009a2296 |
File details
Details for the file usearch-0.22.2-cp39-cp39-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp39-cp39-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 345.1 kB
- Tags: CPython 3.9, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5799c42ceaa36b55d8651dfc96663ec7930836f1f620257c5a32950eee3aa24 |
|
MD5 | 6aba062cf110733d3df2d3af90d5354d |
|
BLAKE2b-256 | f1bd3238e47bbd66a3ca9f14de07ef6fd21e04766b25e037e046ddc21ad695f0 |
File details
Details for the file usearch-0.22.2-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 252.8 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c43eab495b328b9bb9ae5ef760330f3787de9a5a0dd328ad4a3fb22918849d7 |
|
MD5 | d7599b933e5d77ac5b8ea4c1c9adb9f5 |
|
BLAKE2b-256 | cd093f3485b9ed4cd3211ab63d1248c288efb452811dcfedee2bd86661ef742a |
File details
Details for the file usearch-0.22.2-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 263.6 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7c020c20d3eb9940cc32c81f127828dc01542e2a2f0fb1166d448db673c838e |
|
MD5 | 23364bcca44ea3d10d0385b4009303aa |
|
BLAKE2b-256 | 2b0d3faa003a739fe06850a3beae58ed209fab6ffd6d61020fe88b49d8904e0a |
File details
Details for the file usearch-0.22.2-cp39-cp39-macosx_10_9_universal2.whl
.
File metadata
- Download URL: usearch-0.22.2-cp39-cp39-macosx_10_9_universal2.whl
- Upload date:
- Size: 490.0 kB
- Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04e1d4e4834e96b5777a684101721784967c0d1fcbebec30f9e1628a37ff1dfb |
|
MD5 | fbe4e80291e9c1faed652dc7805e7c0a |
|
BLAKE2b-256 | c2700dfb2151884d0f4bd7d3bfc0ad500eda17613944f8297d34401b71c243c2 |
File details
Details for the file usearch-0.22.2-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 194.2 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b801d4bcef32379f71577dfc3f98f9028c449d9cb394793a9d2c122f294b5dc |
|
MD5 | 9e5fee45ba76d6f9371cbc03edaa2bb0 |
|
BLAKE2b-256 | 7a2343078adbc58055a163daab1214ce94056df0a4d02b0ba04f0981c775bf89 |
File details
Details for the file usearch-0.22.2-cp38-cp38-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp38-cp38-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 358.5 kB
- Tags: CPython 3.8, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46314e369518bb875852d4f7280849999eb7267ee98f930ed1efb9dcf9e778f2 |
|
MD5 | c5fc1a1b1a1a527a661b4080045603e6 |
|
BLAKE2b-256 | 40efa28403309686e576898972fbc5796f21c98ed5ab5620df0838eaea42f1ed |
File details
Details for the file usearch-0.22.2-cp38-cp38-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp38-cp38-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 344.3 kB
- Tags: CPython 3.8, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ff372f1b121ea305ac491c827db137ce301419a73668b1c35a6efc7515e4e91 |
|
MD5 | 2f905306402d4181082251739fd5f8ab |
|
BLAKE2b-256 | 33a606ef6dfa5881c46b1d4564e087d157a3644f20c8ddb6cb8b8914d5553510 |
File details
Details for the file usearch-0.22.2-cp38-cp38-macosx_11_0_arm64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp38-cp38-macosx_11_0_arm64.whl
- Upload date:
- Size: 252.5 kB
- Tags: CPython 3.8, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd5ba394967f07d8e309c76a0c2c4fefbdf42cbc402e7ac2e38616bfdcf55d7b |
|
MD5 | a10fadc423a9a13a59a0f8b5df83af4c |
|
BLAKE2b-256 | 21046742a4c102cf6cf21d5f45c034a384f2d2e067d850700a23ca8ee4461d32 |
File details
Details for the file usearch-0.22.2-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 263.4 kB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 197c9bbd8b92862b35b81599cccd33de7b920ec477d99851aeafbd5ea1c9b43a |
|
MD5 | 7c870cb4c2a87cb8500fe83c9b8a137a |
|
BLAKE2b-256 | 6bb25ea8cfd8055207f4e6eaf5c90e19120fd8c09b17efa6cb929533b2ecbd71 |
File details
Details for the file usearch-0.22.2-cp38-cp38-macosx_10_9_universal2.whl
.
File metadata
- Download URL: usearch-0.22.2-cp38-cp38-macosx_10_9_universal2.whl
- Upload date:
- Size: 489.6 kB
- Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8617869bb6d8831c6485fd85188e7883348fcb5ee6567db42944bdad304be60 |
|
MD5 | ce8122156ebea2f81eda78b7191897bd |
|
BLAKE2b-256 | 7eb22ee132b3690ccb2172d9caaf72a0c657a8c58ae18f0d378e9a523ad03de9 |
File details
Details for the file usearch-0.22.2-cp37-cp37m-win_amd64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 194.6 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb25929f827b2cf934bebc27784b4b10dd463c152476a37bfda2318ab9b9a79a |
|
MD5 | cbc7b3a53facd837ea82527fa7ad3251 |
|
BLAKE2b-256 | 0c2c72c06ef3a2f5675638a0c8aaa06cc06aedbaf324eb16668c30848638eaf6 |
File details
Details for the file usearch-0.22.2-cp37-cp37m-manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp37-cp37m-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 364.7 kB
- Tags: CPython 3.7m, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b60ff908495ffeb0865207026a8d0349d51dc1d2e7977e809363a234ba277e88 |
|
MD5 | 2476d8e4aaaa05a4cfbc4d3de163f0fb |
|
BLAKE2b-256 | ab80ef2850d2cf5842399a1dd8d5da821da7238d9273ceede5afa8eeeae1097a |
File details
Details for the file usearch-0.22.2-cp37-cp37m-manylinux_2_28_aarch64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp37-cp37m-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 350.0 kB
- Tags: CPython 3.7m, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8235a05d8e29831b1ab7bea0d18c791e156d489b2641f63f7c975fc01bf38da7 |
|
MD5 | b183b8b4092dc815e2807c9dde43d916 |
|
BLAKE2b-256 | 4cc15a768467b606667941256dc281199e1785b2c5fa18b48bb60380deb9fa65 |
File details
Details for the file usearch-0.22.2-cp37-cp37m-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: usearch-0.22.2-cp37-cp37m-macosx_10_9_x86_64.whl
- Upload date:
- Size: 259.1 kB
- Tags: CPython 3.7m, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f8d24ebceaddf335ca265cf2919f6da75ba01be6262fc3438c3675313d44a49 |
|
MD5 | 8ebfb9e838d7b7e2fd0a227a033c728d |
|
BLAKE2b-256 | b353e8e0291eae5acb9d7059dae4e387e6b7f358a9f7b5ab1a2044766e372bfb |