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.5

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-0.1.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.4 kB view details)

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

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

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

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

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

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

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

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

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

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

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

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

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

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

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

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

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

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

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

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

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

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

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 macOS 10.9+ x86-64

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

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

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

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

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

Uploaded CPython 3.7m manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.7m macOS 10.9+ x86-64

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

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

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

Uploaded CPython 3.6m manylinux: glibc 2.24+ ARM64 manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69d9cf48660390264a304920f7528d814c0be6f31f8f1e18aa3e942cb22c8d9b
MD5 23332abfe19f2c3331f53e8f082d2e0f
BLAKE2b-256 a8c2304e573b2e57d4edfed6c9a3bf1485c15a26e3379b5f7c0687668fb8fee4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d4acb779acd835969050127a5402dcad8237d4dac44434fbd29637c3f7d9aa8c
MD5 1084be8c1278ae283e994a8ec0bcf23c
BLAKE2b-256 af6695f5ef9651f09c249c2d05e4c9c94cf5495f6f0c4b74922d9618d2498970

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77cb6ce53b872755dcf163affc53d534673857250aea1c5534d47dde922b33d4
MD5 5976895c7f61d7fcb5f22786539977a6
BLAKE2b-256 92637203c6997371e5aef11ff8224c9796fdb3ff03279d96db5295919d85f2bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aa3e33c178d1e3c67dd4275629d0a2f298e7d97646c43a185dfeb7bdf4b1cfa0
MD5 a4e79259d89913ae14e441d5b791a3c5
BLAKE2b-256 f4cfd08c9206ead77bca1dc2ff9c345f3e95ed4a5783914fcdfd4236e7e7b914

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7d31b3e6f290b64697ee70b57147e2ce5836029960498620a2293dff5ed05b99
MD5 d4b5885cb016eea8a33b85d0621ef171
BLAKE2b-256 de52881ce83d36fad63ece4dd2a17d7404744ebe2994ad42c12866b31a9f5eeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 129112a2d885c6461e508835aa57f0601fd2d55ba2ae209957090a2464161597
MD5 3b508d33638704684ec9e4afe02f076c
BLAKE2b-256 09e5371f1c41efa378b2d60063fc1eb8697ba0eeaecc00efc09a5fa0e6697bba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4127f7dc386b4d09359fff2a4227ef19d0b188e74592bc17a71b53452cc4ff0
MD5 2e00b5658f242081f4b57611034f5941
BLAKE2b-256 5ac85b99b4e09eadc3c4d520a810c019196999ced03a1e0d40406ae713275c3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b41b9a114b7c1494a0ba372c6467a4ee1a5d30c3cc2a7a9463451396d2c1a31e
MD5 fac40eb4b7ca6dbb9b5a9ab92919ef24
BLAKE2b-256 2079ba73efe3a9cbf2de1a66ce7a96131d8f7633d90910107592681413d2534f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3e7e2bb2bd23284f308a3728aa9356aea0be86bfeebe89eefab761e38a8f6784
MD5 ca1ae867e1b51bad8ca2959af1dfefcb
BLAKE2b-256 1ce1738db6b49e499d107b4761f9e47c66b18dfda83f6d0b488c320eb12b30a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f8777197badc100fbfdb8dd92d071ad069fc6bcc88e3740975d80a488fea1095
MD5 d650a4def8f3b995d809ca78de346d8b
BLAKE2b-256 02b2c8adff057884dcf2e88a826ed2588b4f8a04962e26cbb4e4022efb18492d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 437b2f6d4e4f3ea2958b61255bc526b4d8902543479ced40ad0ff3d687576414
MD5 8c6efadf539e827210b498d97afd5deb
BLAKE2b-256 3c37dff2185a771f8ab589ff016523c0e9436b10ff6fdb516b5aa882c8660e56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 000711ac42d4d51e2dd00377bc7aea89052ec0910d94e412f1a4d72b1ecc319b
MD5 4390ae52e72ffdbb2daed837dc643058
BLAKE2b-256 01cdab70bebfc427e1106f37fd3a7a4cae4faadcb69fb0314e00fb1b10646a25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e87809acda520e75df884261282d021bca07baa3f80b9fa2ddfc283e38f5e0f
MD5 a6efd155083d73e9f2af8e99100ed3ce
BLAKE2b-256 157991d5d43a9da83e30c3a80cd7fdbe27f71a1f508a877308978b05dc831738

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9078d2d3e5210371bf4cfc2a4dfbd48b32e8ac00c243b26e1bb1761991dba5c6
MD5 12af7efb9f21a3a4d54700b66f14f9de
BLAKE2b-256 d0a351a1692bbc5e4aadbafae8f8443b4c3c1134286cd8979fbe34b6386343f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1b50232ba040ae91be2857648c4fd2bbdb942eb92352ad4662b13a153e314121
MD5 7af4ab2eebb89e2ce2e3ca639aea3aa4
BLAKE2b-256 7b67972471f0a1934e7ff0eb8b7fd4b59790d51faaceca67c95d6dfc75a073f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b323ea24a46970fdf781ab98e21f3bb7f72072e72d1923d407b80db40bf292c6
MD5 ce40b0cf89d64ddf2bd45bd7b9f84777
BLAKE2b-256 b191a4cb6e7697e749dfd07b049c886b09bb0d3acf38d16b4f29775ab7268104

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 433c59b4df2eac13d595b42a1a5cea9499582980c22d4edb7da12cc50ec7eaee
MD5 c6f6901175e3591b8234de1772b3ddab
BLAKE2b-256 92b0d0befc7d30265fd2abdfb27d0354777a53c629a93809ce1efd7f151e74c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1721ab6acee526612c792012d24f2f989816dad00ca498fee30639bb14b9be88
MD5 791c80237790119a56b8f356d377c706
BLAKE2b-256 2695d41b1237972ae3b5359d3f6f0ce213164af56412001741d4ad0705d7723d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 08c58f8b00fd6e80213d694eaa8602a0fe783513ae10cd81a7ddd2c4f7d3223c
MD5 27d0fe61c9021d6b51e899d15bffd16e
BLAKE2b-256 5d0c456a3ccc6851fe1f731f0e3628168f8c4898ed85ae2420c57b5b405c07b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b7fa26819438601dc772a623612b5557274aa717cfbb07901525dcf14292172a
MD5 303bdb9cefcb7f41fba173794c358ea1
BLAKE2b-256 30331a9ea2b7eb694f5463e8f25df37d04a11ff748584a019ee59650d442c921

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d36ec73f119528079504d7c2459be9a4a7d4dd5167c584e15b4c800c51bab6d8
MD5 95eb2b6f8d068f2e838eec5bc0630db7
BLAKE2b-256 955735fa3dd1246bf011b3719143a508bb6cc8c80b8b5af020265948cb7e3a0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ef126a6eb0b023d01ee0edfa32e1f92a90a77e729bc0f9a17d9be5b777871121
MD5 1ae1bdb2409cbbdbe33040a031da3a02
BLAKE2b-256 daafed51c935f95e77f3e13677d57eec4b8042ca2b2a5195b4a545190f1a1cc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 20c2e7bb350e1106c6436066f5dec57cadd2e6594756db3d8aa490cf21e72131
MD5 4b77a5c181bfaff2b03badb29698f48d
BLAKE2b-256 e6849e6d323eefe5da247e3fbc38b9ba8744fcd82481547d5a63cd326e0bc5df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0771ed480996066680b840b538fe672dd71bb7c66590a1ea74ac612b0eb79fd5
MD5 170a2410f340520fad01a853fc8b11f2
BLAKE2b-256 04ca4eb6c3a28a7a26c4b8f59845697ab56558705cbd756ef1942d579c5ea9f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2b1d28d5bff27f583a0c03edc752e540f655f6edd47fe20da360224129c124a6
MD5 516b3b882c3f2b2d53b94892db16c01d
BLAKE2b-256 10bbdc1846d63e60e46425d68fd12a747eb1f8e5f71d9810f593403cfef1fcc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.5-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7b6a755b23d521a074d3ecf5dc1f5823428e696fe0a2d2ce5fb2bfbc97feeb7a
MD5 fe5a6747345451136fa00e5bafb3b4c8
BLAKE2b-256 1925accf317f4907eb0d979704b8300b555556a41c57de04e86cfd396e6c8cb8

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