The Tiny Vector Search Engine
Project description
USearch
C++11 Single Header Vector Search
Compact, yet Powerful
- Single C++11 header, easily extendible.
- 4B+ sized space efficient point-clouds with
uint40_t
. - Half-precision support with
maratyszcza/fp16
. - View from disk, without loading into RAM.
- Any metric, includes:
- Euclidean, Dot-product, Cosine,
- Jaccard, Hamming, Haversine.
- Hardware-accelerated
ashvardanian/simsimd
.
- Variable dimensionality vectors.
- Don't copy vectors if not needed.
- Bring your threads.
- Multiple vectors per label.
- CPython bindings for Python 3.
- Node.js bindings for JavaScript.
- Wolfram language bindings.
- For Linux: GCC, Clang.
- For MacOS: Apple Clang.
- For Windows.
- Distributed construction.
- Multi-index lookups.
Usage
C++
To use in a C++ project simply copy the include/usearch/usearch.hpp
header into your project.
using namespace unum::usearch;
index_gt<cos_gt<float>> index;
float vec[3] = {0.1, 0.3, 0.2};
index.add(/* label: */ 42, /* vector: */ {&vec, 3});
index.search(
/* query: */ {&vec, 3}, 10 /* results */,
/* callback: */ [](std::size_t label, float distance) { });
Alternatively fetch it with CMake:
FetchContent_Declare(usearch GIT_REPOSITORY https://github.com/unum-cloud/usearch.git)
FetchContent_MakeAvailable(usearch)
Features
Bring your Threads
Performance
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
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distributions
Close
Hashes for usearch-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f78a2d81e5921e76d1ea900ae3bc1e88ed8acd3b65e6a2fd6641c35a56deb43d |
|
MD5 | 7d3c501981eb2f3b12a4421b7194ef38 |
|
BLAKE2b-256 | a13f3c8e5247cf4908d7f23e11ad9cb3dda7a35d23c1dcf255fca4ac5be3b9b8 |
Close
Hashes for usearch-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7e9bb8de50b787f96a3417d8b0434f04470b08e2a2516b74f9d9bdbf54f3214 |
|
MD5 | 5a313728c157bbdcf31aad8cd52c27db |
|
BLAKE2b-256 | 25c376aa73f68a96affa777c0bec4555e89b0b94bdba692fda5deb1f4f9e3815 |
Close
Hashes for usearch-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d85140aa083b2f0785bcdb05c610ca4f2d6af8fcdaad421ea9d322067d2a0514 |
|
MD5 | ed41f8a9b0a11e93298d892aa4f3281c |
|
BLAKE2b-256 | ab67ab48c6c7c8ddf1294362a53e43da2b8c9f6ef03f9f5ac981589f0ec8ae9a |
Close
Hashes for usearch-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3bb8087eec13699bd40ecabcf139d2d3b2f1fd8b259405310a24265f6b3f37a0 |
|
MD5 | 2f1ddd624d4037b2096a3ccacb94d244 |
|
BLAKE2b-256 | c4ba243b700980615269771cf9eb15ce534731af209ce90984f81b23ce5fd927 |
Close
Hashes for usearch-0.1.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36df71569af997e364ebcfe8a6ccff924671b81e7667a0251ffbbba44437f2c6 |
|
MD5 | e0b440287bbbdacb95e4fb8e35f86d37 |
|
BLAKE2b-256 | d4b9822c7f9300024e4f807429f26701ee7f9d2ad675d432d8b80b50e07446cb |
Close
Hashes for usearch-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 381044f4fb8d1fb3398c64511710c1b124b44c65b7a94b656d9c31fc661fbd75 |
|
MD5 | ea334229802cb979393dfa36d5cc7d48 |
|
BLAKE2b-256 | 956c04b7e86845eb11eb40abb7038bac12deb705c911004c313145d90dd73fa3 |
Close
Hashes for usearch-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cfb9aeec37cf02c0d9fb1ab1f7e9d7b442715e358e8e37a04a4d363f70d05dc |
|
MD5 | 94755bca91344203f9a48a310ecf5683 |
|
BLAKE2b-256 | 616607f3b61535584e996cbfdf035f41e62c3d775f0d7daf98bf2a89e89e03d3 |
Close
Hashes for usearch-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87e32a3068ba159bb25c15d955aac3292d5460508feba83805eb173997cfe0a0 |
|
MD5 | 94d40d9834812a242bda13870ff15c27 |
|
BLAKE2b-256 | f3dff3c65997d205ad8da7db0731c6ad499aedf5aaeade87a0bf66259b1c3b21 |
Close
Hashes for usearch-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f228a0dda5ea95c0f0dfeb361aeaea4801f5ffb3b13d4b5106641370ffc9fc1e |
|
MD5 | de6765827513b8acf2713d7997d4c5ac |
|
BLAKE2b-256 | 143d71220e964ba9b9a77a849fabac183fd1c868744b107f97744db38f93ded6 |
Close
Hashes for usearch-0.1.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4c5d300a7c0c1b9d82c8a2f76f49bc3c0e48baf9751878803b04febdbd61cad |
|
MD5 | 296da9e149dfc3a8b8171c28750ee12c |
|
BLAKE2b-256 | 8d8b1373ac89dc947dd61044bc5722ead0846b0808ecbb4eab4931f793adc6a3 |
Close
Hashes for usearch-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf4800d8a65a1b32ee48b047839608c66db50c52641cb20dfe6a79f4da7f2604 |
|
MD5 | a6331a956957e2af002e57098235babe |
|
BLAKE2b-256 | 5aee584250c87478792ea6bfd2f7843745561957a3a5dddfe3073371fb727e3e |
Close
Hashes for usearch-0.1.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a905afd2e8fb3680e089393440b0e0954dc973aa3e4a41a1cc95b4aefaac2fdd |
|
MD5 | 13773ce64d49427976293d298957e0c8 |
|
BLAKE2b-256 | 6a321d28bce2b7645c004b6826e5758eaa4b7229fe8cc1af1bd8b3f8c988d993 |
Close
Hashes for usearch-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03b15447c00df220a852f39827b28f4929e20d120353464e6650673a9ec2f122 |
|
MD5 | d2dc9bced694d6d7add5ebbdea332e73 |
|
BLAKE2b-256 | e66ede2fd3d379cee579ae54f4e3233879303733a497a44d773dfa0be28df387 |
Close
Hashes for usearch-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f71e959d4f23445ad818491f8e774c4381d321e03a81cd9b169d2da4b818441d |
|
MD5 | 35b912b59dbbc3d0bd290ff223ee988d |
|
BLAKE2b-256 | 4e9696383287e1e910e4146241bede6e56f6b75d5ce88d96c8ace4201e93431c |
Close
Hashes for usearch-0.1.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0dbf6d2eb62c6a28629e23a390a5661439d2858dae58f8d0e5ff08e8d8c7bd7 |
|
MD5 | 0ca882c22320f732050d9c441b548164 |
|
BLAKE2b-256 | 5467901befa4a1a9775dd143860241c718025a2db35beb01679d90463cd6280b |
Close
Hashes for usearch-0.1.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9e5f2d223b910d2c45a89dbb768ae0f0ec7f67cb2c0ea32a627c57127f264e3 |
|
MD5 | 428ccd217a3d15964c391aab49dbc66f |
|
BLAKE2b-256 | 1c52a77582f23001abd685d11069681255ba864708ac1b57900d379077b92e47 |
Close
Hashes for usearch-0.1.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d2631705254d2cac30f8d38e9bf9d91e38fae1e4bb744d4b61796d2343f2402 |
|
MD5 | baeb21157c325ea1fa9d9028c7d6635c |
|
BLAKE2b-256 | c9cc1033dcc4a7f5ca9282ad2254ae916959f1d3c71848a9a5b766c995645564 |
Close
Hashes for usearch-0.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceafca5ba351539f3ba72bfb5335f2fe6af6883a7514d5ec242b0af3e6590939 |
|
MD5 | 5781b560251f4830cf3d72be7fd26a34 |
|
BLAKE2b-256 | 1cc965c38553699bccc6abb06762804f87f8ba5e91e17c00190d56635d061c99 |
Close
Hashes for usearch-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f48198749f5c2bc4232098405603df297bb4a761969388f1001e995de3bed6ba |
|
MD5 | 13d8437893c0e75b008415f06da0a51f |
|
BLAKE2b-256 | 095f6a47e08a9b60d0d98f6e2f214925551d4892d9aed701b21e9defc2d50962 |
Close
Hashes for usearch-0.1.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67ede70354669e3a53db4424c48fdc988b39224286f58eb41137211d4bd4f755 |
|
MD5 | 089ec82a00d7cbce1a6836ef9e40ada8 |
|
BLAKE2b-256 | 0b203c2f02e738c793bd80e41765a45b287de3d90c367379cef62137863f7abe |
Close
Hashes for usearch-0.1.0-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b34b9d2fb653eb4c86bc5becd32f32c6c78851b7d6b9a76774a006993cc8a0c |
|
MD5 | 6db37795dc5f31e09868c2c625808780 |
|
BLAKE2b-256 | 6a79805576c6b4af82bcb272d0fed6df06dd24c27fd23f7dd4c7ca5725e9dc96 |
Close
Hashes for usearch-0.1.0-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e343c9e643133d83d8c288d6b00245ff182ab405327c2ca97c74453ff45021e |
|
MD5 | 8ece3494381709b1ef2570524a314279 |
|
BLAKE2b-256 | 7389b1a2ab59175f9c8c799ea9d1c624ad128309b3a279477882c37a53d84881 |
Close
Hashes for usearch-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d129f502ab1b9c7cc381d44f59f1e48b90876a3044ad282cd3c84dce87e78628 |
|
MD5 | ea56c972f1934ffeabeb9aa242911dfc |
|
BLAKE2b-256 | f25807feb6ef2abc63f4e1efae20bd45736b59aed31366f530adb5b94aad8afe |
Close
Hashes for usearch-0.1.0-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a477e4acb1eb80bc7ab91326048bccc0bbe889ab55bea1984a6545cf4fad68fc |
|
MD5 | 884615f1e26c5902f22f9a06622196e3 |
|
BLAKE2b-256 | 37cbe0db859d4c5f1f91b890b67156c237cbe516cd402d98e66ff0c845e23658 |
Close
Hashes for usearch-0.1.0-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5350ee65d7d14831b976a93502879acb2439af49e6fd1faa6f94a5659828853 |
|
MD5 | 3a4171854b2d31569059aa9530040354 |
|
BLAKE2b-256 | 7378cba595cbb0f78d9d5d0e7007b0da651a68f8d48f672255b894c0227c3785 |
Close
Hashes for usearch-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 650cf4bbdbb10964e6b1e0e446985ff4853489f8ddc1922e517a6ead2f9d05a6 |
|
MD5 | 41b5620329f32b9f873c7c8d237ff056 |
|
BLAKE2b-256 | 62e58dee6504f74e1f529d5ba0426fe0531652113196a7c9f65f1421015c9fd7 |