Skip to main content

The Mighty Tiny Vector Search Engine with Automatic Quantization and Hardware Acceleration

Project description

USearch

C++11 Single Header Vector Search
Compact, yet Powerful


Discord     LinkedIn     Twitter     Blog     GitHub

  • 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

This version

0.1.4

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

If you're not sure about the file name format, learn more about wheel file names.

usearch-0.1.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

usearch-0.1.4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

usearch-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (106.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

usearch-0.1.4-cp311-cp311-macosx_10_9_x86_64.whl (115.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

usearch-0.1.4-cp311-cp311-macosx_10_9_universal2.whl (219.7 kB view details)

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

usearch-0.1.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

usearch-0.1.4-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

usearch-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (106.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

usearch-0.1.4-cp310-cp310-macosx_10_9_x86_64.whl (115.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

usearch-0.1.4-cp310-cp310-macosx_10_9_universal2.whl (219.7 kB view details)

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

usearch-0.1.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

usearch-0.1.4-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

usearch-0.1.4-cp39-cp39-macosx_11_0_arm64.whl (106.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

usearch-0.1.4-cp39-cp39-macosx_10_9_x86_64.whl (115.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

usearch-0.1.4-cp39-cp39-macosx_10_9_universal2.whl (220.0 kB view details)

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

usearch-0.1.4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

usearch-0.1.4-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

usearch-0.1.4-cp38-cp38-macosx_11_0_arm64.whl (106.6 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

usearch-0.1.4-cp38-cp38-macosx_10_9_x86_64.whl (115.1 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

usearch-0.1.4-cp38-cp38-macosx_10_9_universal2.whl (219.5 kB view details)

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

usearch-0.1.4-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (122.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

usearch-0.1.4-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (116.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

usearch-0.1.4-cp37-cp37m-macosx_10_9_x86_64.whl (114.8 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

usearch-0.1.4-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (122.2 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

usearch-0.1.4-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (116.4 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

usearch-0.1.4-cp36-cp36m-macosx_10_9_x86_64.whl (114.8 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file usearch-0.1.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4537693cfb44001b7eef1e0d1635e935a9da732fc34b7966b2e12fca2205a551
MD5 2e7d3c25a8d0743633716ce294584a6f
BLAKE2b-256 93041c240895147c9226cf5c8abb9848859d0b4418bcea727532d02ad35327dc

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 62eeaff2f9711d9d90a83c544ec0c7678bb4e96d695959ae2e53c99bcf5ffeec
MD5 3f6f422c83b58053065f27c7ee804500
BLAKE2b-256 655e89cdd1ea25076087df3e2e1412e95d9d6ff949bf46fa6048b31435a56542

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6141a6ddc5329d3b9b7826d046792677386f4b7b0dceb89614183c723518909f
MD5 abcddc54cf11437723c1ffe75959d062
BLAKE2b-256 e7428e06dc21205591006d7ab0959ef4530088643437c1545f5f64cabb9c5fcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f09fb45b6ed35f929130c6acc1d58699af895c668af7587d5e5f969a55327007
MD5 97d6fe58c0343c2f9851a089693ace87
BLAKE2b-256 5f358c47e92cae1767ce93ea1f53f6c82fe0101b536d333f2b9e344772ccb3fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fb57c66f62d4f2e08951e80cb19f217edd039d21b8e11ceae6c7fcb88a7bf3e1
MD5 497cc18611cbc56af18b6b39ea2533c2
BLAKE2b-256 3d9fb9bbd0512aefe0634857b21fbbf91240d8a567b7494e2e8849b1366ee6f7

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d231c1637b51b8abc80dd951423670f643ca88ad5bb5e4e82561052e7a0ab4e7
MD5 50593fbea5fbacff9f143e89bd0e0528
BLAKE2b-256 a37ada26c7de4a57e6c152a64cd8f23026a9055edfee0a6e95e8fae8b9c36440

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3d539f837ef223417b5cdb35210ee15f4c2714735c5ed6b8af4f9c4f90fad337
MD5 9d77dca6b66afa00d81956442226b3df
BLAKE2b-256 408258828b5e816624886fefc57af233465d56abe08e988abf295cab8c81eef7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fdffeb09826059eda5be8e594b8d35336924ffa6d4ae951905f2aa39a58d883
MD5 1415b1a02716e97025a314049ff637d6
BLAKE2b-256 755e61c2fece33b0e56369933c086ce85dca104383e15e4f9b49bbb68446ab10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9dd97498da36f6022e275d872b42cabc5c0082036848667b3072ed7b79e1b408
MD5 377782bc51293bb0dd629cdffdd5a1dd
BLAKE2b-256 b59eb061e3e5ec0a795cf9bbca86e64911b6ed65e7d69622ceb9961900f8d62f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6e07659cef7e527dd75fb9d5d3cf94b07aac580fd770ed59deb0512140a3c40d
MD5 d423b6877c16b8850c5009b2090c99b0
BLAKE2b-256 6e963bb15356734409e933b5612ab62d106d730be839dd4ca60ce3d406f029be

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15291146d85c53d2df17497c73e16da0e5f4df3a40efab01a56eb3cb35a321cc
MD5 db01d2114489e4bde81c70a903fd3152
BLAKE2b-256 e0c2f6fa64b8af5b86cccf970c4b79c6e2abeae088002ed5aa39fd9b1212a43a

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 16d8cafc7fe661ee36e8214e44a2a3f545e915950c85390b4143ccfc37fc4401
MD5 097b496e9633065e71f89430b34a18fa
BLAKE2b-256 0bfa118ce1139c8ebcaec9eb552f5ef23eaff58aca80b887bc461b0dc384f003

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13b6d3dc97665b24697e2159d930add91372f272487a8d352ff5062750d50ff1
MD5 cc721a11807c1c8f29ad4ab045696625
BLAKE2b-256 e87eb206ea69709eaac86244f05deec5234b80b7b1da512555f37267b82a156b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 75b9909329ed2629477f90db08a9809ab76254eb6911f98dcfa2f3d01d83e946
MD5 6efd9b7a70d71faaaf66186c7a1952fe
BLAKE2b-256 e70addda1bb2262beb565f59673b34600e8ce3be4ea66e20e573f0899a5cbc1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 98c6a52eb78b9c71e8ef18bea0cb425a52f449bef21827bedc4f3033ffb5631d
MD5 615c0b5f40bcf60c31881f9f4e72258a
BLAKE2b-256 e2509dcf83abb5ef81fb045a6b7ed38a0b5e6568891f9e3bcbe63c3bc839c275

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3fcb715d50acd0b1239c49e099ebe6bda0e2208b70ca3fbde0c0a00b6d2619c0
MD5 145ba6ee991850aff4908d299bb18a87
BLAKE2b-256 17f2a43443068ba15d1afd31991848d28f68f151268b64d8ec47811c9c429e7e

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ba71989beeaa0325fb1169b94e57754faef20ce679e608fdd15a4909624c1b9d
MD5 afe5d6498d098b1ab1a5a798cc94db1e
BLAKE2b-256 7b2ff0b4ec10e6e31c796aab4e0829d0249966acd9679dcdf6a9ad8d654bab62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c400c8447a06b9e4f6ef17d23c9687e2e906d159fcf2ecbf353c1bae7875d75
MD5 694c3a8d325a2483dbec47876e801785
BLAKE2b-256 143e737408a0602d3589518c653784450eef2227791955309be9645125f735a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b2839b4b5c1002cddc78728c433d286785e6e3198ee119d68bba523d87d7c3bd
MD5 6865ba50acce43435ccfeaac4e16e3ae
BLAKE2b-256 c9efb84e8ee5783685c78e29ce329cca8b0a76da778c9a30bf48d92740f2aca8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b1c4db0afbb84d06b9c9ee1b4611cc9e71e5d64f65681a6d758548571862ba0e
MD5 c7f8a492f72f908f9292e29210e3ce8b
BLAKE2b-256 232c4bd4c68bbe56948c829274ed31e97058d647b1923106ff877e6b8dacb685

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36c1693eef49ccd0102e095c3c39a94f37d403ff1d44e6d0f3d3f2f0ff55781d
MD5 2d46eeece093075ccc5e52183b1d6127
BLAKE2b-256 120652e603323eac09b031a9ecbbdedb1a99d579f32ed1c5cf132f1e6a937902

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c77afe12d272d923defccfbbecd9b4eca6aabc5273bc3db3c8e20d02405ef5f4
MD5 d6a205f6181b288c0ab55c71f75b53c8
BLAKE2b-256 91576417664c87d4bbb0f7d0def3c38e7e0f8f818467b1af1d4b5c0649c92629

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 38eee3c695a3bf86468b2414cd4645fa8446a8d2cfefd5659f5f488184f2f12f
MD5 dd912bc9876271a01384c2c485349d1a
BLAKE2b-256 4501e18204673f36646792bdc7d776f46fdd10af12888cc5a984cabf76975a39

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7007fdc3476cd98cc4659fa2a8050a256af1742b32c7f4ebc1d97f8b42f40a0
MD5 d6a05263fe2c405b968fd995e6bd5b36
BLAKE2b-256 ac31c19f43b0e37f4be3ee43f122384d1adda3265f58eb6974fa9aa170769fb2

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 739362385530a0110a69a18f2a0f7a5ade5c0246f7a109554722ba13242ec17e
MD5 58722e42befb9714a3cb66537d2966fd
BLAKE2b-256 b091567253b3d46c9b5ee0a40442903023571ee3cccfff18f2a522e230b58a31

See more details on using hashes here.

File details

Details for the file usearch-0.1.4-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for usearch-0.1.4-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5bbe00d3acd2e355dd025466382f9eb580faf1ce5efa3fdf43caf45c230d4870
MD5 bf69a8748099b9be246a26d6a7288fa1
BLAKE2b-256 033a8aff948a1bd3d327b2b8f1750a37fd1d36e772e996920b02104033859048

See more details on using hashes here.

Supported by

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