The Mighty Tiny Vector Search Engine with Automatic Quantization and Hardware Acceleration
Project description
USearch
C++11 Single Header Vector Search
Compact, yet Powerful
- Single C++11 header implementation, 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.
- Python bindings:
pip install usearch
- JavaScript bindings:
npm install usearch
- Rust bindings:
cargo add usearch
- Wolfram language bindings.
- For Linux: GCC, Clang.
- For MacOS: Apple Clang.
- For Windows.
- Multi-index lookups in Python.
- Thread-safe
reserve
. - Distributed construction.
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
TODO
- JavaScript: Allow calling from "worker threads".
- Rust: Allow passing a custom thread ID.
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.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ce0eac7447a2d357bd3cdb1ef00d977c5ecd898821f7e747bfb07cb6acc7020 |
|
MD5 | 51465b1b95a61c015149aee5279a52b9 |
|
BLAKE2b-256 | fa3d46ead072a03b6cc9ae22a34c7045737b7049d6a90710c242c3dccfa01c2c |
Close
Hashes for usearch-0.1.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef31afdc9474da29745b5b1c04c9e37cd79bcc09551ddf95834b6caa8163e9e3 |
|
MD5 | 99cae9bd0b5058848c5d29799762afd8 |
|
BLAKE2b-256 | 37e36824c723781a9698a6e8ed6c5bb0636effac57f0896a6229425f5bc6657c |
Close
Hashes for usearch-0.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd607e405092604e41692aa917cd2a8027ce618738e9dec2f08305092b3966f4 |
|
MD5 | 7454f6f05b0e644879b4d32bfa6611f9 |
|
BLAKE2b-256 | 89110a1d07e38983d774937894cb161167b8114f9eed0660b1bc2a81c7f10293 |
Close
Hashes for usearch-0.1.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35fb5510fe01c60870448a0d786914303b6fa8d814699a87ce3740ec6366a0ce |
|
MD5 | c89eb5c923da70c1162af7248692683a |
|
BLAKE2b-256 | 018a58796974534f3936b9d6c27227c538098a847c4ec8423bb9f63b3213e949 |
Close
Hashes for usearch-0.1.6-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9c97d7c33977d879a1ac538ff2cdf2226c8e11ff1c68281a61d4685b89df226 |
|
MD5 | ff10f318588ee8b8fbd05baaab75ef28 |
|
BLAKE2b-256 | 020142c92636b61b30c3455b589536362ca95c7ea8b06d002d93842fa5c3c167 |
Close
Hashes for usearch-0.1.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 946b2ccff43639b5cc670aec2dea9a209daef4f8fea9cd2132352e6fce0d3785 |
|
MD5 | 0b5ad780f11d925066067195bad39d47 |
|
BLAKE2b-256 | c7fac11bc2ae68916cb13281736c8b6788ebca6e60e8dc958fd15ea47dee8d89 |
Close
Hashes for usearch-0.1.6-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed21689a1ea9a1bc917d543483b26e1e7b16e955a72ee61db27b0e7bd3871e4b |
|
MD5 | 3c160e8dfac58a9deaa473b654f6ab96 |
|
BLAKE2b-256 | 9b646ff1b2e9d39cee780c5be55b648e294fbcd175df981b7f244d9006c2d0ae |
Close
Hashes for usearch-0.1.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f12ba05161688250624bb2b58a658bd3995a102ef7b7d867fc736fc1dce9f5da |
|
MD5 | 3af509533a4a6d9471976f525e39e6ae |
|
BLAKE2b-256 | 6708579d93640853443cb317f3df0f9c9c73caaa32b59e4f5493355f6b0899ce |
Close
Hashes for usearch-0.1.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 436299f128a4bea6272f5ac610266e4c0831611e6b56d94322a8f9dbedb86074 |
|
MD5 | 8187535efe157788ea654b433d633c87 |
|
BLAKE2b-256 | d0ab6fff90c991f10cd2132df2f2b5c557b632e04cb06b2b50916ccab9a5a9f9 |
Close
Hashes for usearch-0.1.6-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78de6503aa15c419bcc864133da60a3c0c19a2bc119055b6ec8fc7e2bdcf6d34 |
|
MD5 | fa0093238a92e968f9af00dd6e4d974a |
|
BLAKE2b-256 | 8573f9c50e03c9e02cc9afcb7d682c250b1f4ccd7a86ced263ede72121685597 |
Close
Hashes for usearch-0.1.6-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c2ae10a35f8eeaae48381baa265701ac0bd440d8877367fcca823adfd7fc90b |
|
MD5 | 28ce557fd354afd2a47a8522b5e05057 |
|
BLAKE2b-256 | 3c177433444a83494dd41453dbc5c6cfbb6fdcab91e8f7dbb3ea973ed6c94ac2 |
Close
Hashes for usearch-0.1.6-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a7392fad1273d1ccfdcc8753c8f8824fbe63c76993f170ea72312e155f897e1 |
|
MD5 | 6ad78f636c1f7cd272e25744c0da914d |
|
BLAKE2b-256 | c7989b70860b5c7468a3a1e4d3ebd6b543bc2c97f641ab93e737769c4ed73c7a |
Close
Hashes for usearch-0.1.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca3a7440d16266d1b4181916d6464322ed59dcdc57abc40ba7ef058ceff5f10c |
|
MD5 | 283c5049d3a9eaf671260713358cb9d1 |
|
BLAKE2b-256 | 894d70f3d835914a8ea322e782f84b7578e4c143d3a0f9f494e618399c6486a6 |
Close
Hashes for usearch-0.1.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04235c83f3dfd537609e2c296cccd905ab2564577719bbe66b5e1362f0da9d41 |
|
MD5 | 896cd5a40cca6f11433fbcd4da1bd819 |
|
BLAKE2b-256 | c3184978e3c5cf585f73401d91679ef833b0fafa4cfbbe8f191e9b647d0986f3 |
Close
Hashes for usearch-0.1.6-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fc541f9b68da0e708bf8f45356b3db526fa0175bf7e279641290972fa5e7b5e |
|
MD5 | b7f6987cd08c52f8dcee1cda2dc03016 |
|
BLAKE2b-256 | 5b3a9b81fb608987b4eaf76898d0500199a0068df1dfe7fc6bd121525afdd796 |
Close
Hashes for usearch-0.1.6-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57d351137d89ec716adf8be84bebe2c65f5f1172a6d15cf693ed4dada3560b66 |
|
MD5 | 32a4b9f9801544322d44338294e0f371 |
|
BLAKE2b-256 | 5e54248bf28d11473c960083c6acdf936aa80ea61d6305ea9f09a5e6df9b038a |
Close
Hashes for usearch-0.1.6-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c36aa732692d739fc9a160bdd923ed009924650196b17a73f2c6bb156ce66f9 |
|
MD5 | 7462b1a552c1012f9c87f2774f030289 |
|
BLAKE2b-256 | 6c93abe081ace52c8104cedb713299b40836fc1ffff23f55e01de7e9ee5af2db |
Close
Hashes for usearch-0.1.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec400d59a389269dadf92acbc74bd8109210581d583acd671285360d7b2ae843 |
|
MD5 | 182ef263243fccff068eb83cce089e19 |
|
BLAKE2b-256 | d74f5a3ea324141553e47481a0de96e63d49fa4384debf7fa2976888a01b20c6 |
Close
Hashes for usearch-0.1.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f75018790e306b6a067d7f1f8ea4b20ec46c9e4953a3591ae19dfae732bf573c |
|
MD5 | 524697a68a27cabe193177acb4deab96 |
|
BLAKE2b-256 | ae6b1030dfa1d6c13392d5ddf28d46e658616b317a519feed2e8a64befc67fd2 |
Close
Hashes for usearch-0.1.6-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1cf14e800d1485cc686ef7a7bfe14a1a392041b15db3faa7b123574d14c8c90 |
|
MD5 | aa04d16e49e42c7684cd7103bec028db |
|
BLAKE2b-256 | 0f08b64fde32db9f7293180cdfa42805d4efd839eacaa53a31d3bd4796402f98 |
Close
Hashes for usearch-0.1.6-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e95353dd33112d04e3e29ba409aae5385647def5c82b4f9d67555f9e7cd65838 |
|
MD5 | 213c830ee740340202ab5b9c60344976 |
|
BLAKE2b-256 | e5a7de6f235e8b8851365d69d3b45d8d7c7dbb932a6bf54055c842e7e2e74a12 |
Close
Hashes for usearch-0.1.6-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a15d4192bcaa08c130a944b680a8d1cae7c78782e13418ebe8c26bf396af49ec |
|
MD5 | 7f4eb1b605074595ced70f8d706efeb6 |
|
BLAKE2b-256 | 5946f6713d2e318e0d42721ca289597f8eb170d14d65870e7cf7abd11134df54 |
Close
Hashes for usearch-0.1.6-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4739435173ecc1db81ae8fef44d6f379b8d3149d86d591c6f3611d9360763b78 |
|
MD5 | e2088fee4bfbbcc9c221792c26458d3d |
|
BLAKE2b-256 | e21c3fbf6d7879842ce1c7c1871b5dda02813171f03cac269117307ecacc9d4a |
Close
Hashes for usearch-0.1.6-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d7cae47b4bd8790fa69478fbe6fc65ae9a66052dc0b2b3b4d59cd12affa9e0f |
|
MD5 | 0a3a97fd223e618c84f99e979e43054d |
|
BLAKE2b-256 | c1083497e2fb2527a299f16a377a71c457a7853b8068d0b76855d75a10859f56 |
Close
Hashes for usearch-0.1.6-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d731ccd7dca8731b93447bd059a617bea01e4667663187388b64636e79bc108b |
|
MD5 | b6323e9d4e87c90b676d15d5dc9487f5 |
|
BLAKE2b-256 | 51035c9ab0e7510124549f141164f4600745122154eb64c008093d58c28eb197 |
Close
Hashes for usearch-0.1.6-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e983b653295c84cdf2d149d92d61784c3c8a1ef37c7c0be3d60facf91ed8736f |
|
MD5 | 147949c10ef8bb6fcce1b227d6751720 |
|
BLAKE2b-256 | 777f6bdbae32b9e85223a04c6a28f86ede11873195b2c7adc9cfb6c230a00aee |