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.
  • CPython bindings for Python 3: pip install usearch
  • Node.js bindings for JavaScript: npm install usearch
  • Rust language bindings.
  • 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.1

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

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

usearch-0.1.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.8 kB view details)

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

usearch-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (106.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

usearch-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl (115.4 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

usearch-0.1.1-cp311-cp311-macosx_10_9_universal2.whl (220.1 kB view details)

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

usearch-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.5 kB view details)

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

usearch-0.1.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.9 kB view details)

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

usearch-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (106.9 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

usearch-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl (115.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

usearch-0.1.1-cp310-cp310-macosx_10_9_universal2.whl (220.1 kB view details)

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

usearch-0.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.8 kB view details)

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

usearch-0.1.1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (114.2 kB view details)

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

usearch-0.1.1-cp39-cp39-macosx_11_0_arm64.whl (107.1 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

usearch-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl (115.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

usearch-0.1.1-cp39-cp39-macosx_10_9_universal2.whl (220.4 kB view details)

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

usearch-0.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.3 kB view details)

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

usearch-0.1.1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.7 kB view details)

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

usearch-0.1.1-cp38-cp38-macosx_11_0_arm64.whl (106.8 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

usearch-0.1.1-cp38-cp38-macosx_10_9_x86_64.whl (115.4 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

usearch-0.1.1-cp38-cp38-macosx_10_9_universal2.whl (220.0 kB view details)

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

usearch-0.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (122.6 kB view details)

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

usearch-0.1.1-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (116.7 kB view details)

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

usearch-0.1.1-cp37-cp37m-macosx_10_9_x86_64.whl (115.0 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

usearch-0.1.1-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (122.5 kB view details)

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

usearch-0.1.1-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (116.6 kB view details)

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

usearch-0.1.1-cp36-cp36m-macosx_10_9_x86_64.whl (115.1 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e982cd11dcb4678c2a1066fc01c986f6b299ddb37365e058494595b7580d895
MD5 4311a6bb193e2100f98caa4afd7cbbbc
BLAKE2b-256 f0bc3dbc28b5d7168af34d8f60ed81ec27d135eb451158bbc11f39da96c96630

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d4462b12adf4241bd4e9215269ac0b40b0823791b19a241afb57a8a8ef943264
MD5 60093595f9c56eafecc3ef85d24a356b
BLAKE2b-256 f196636ef4968c0e85defaf9f32b78798c0ddb3bfb4c2760a4e8bfd560addc8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8924b1f9db54e4e349a3c0c7f759917017107bb0dcf8b32775a7c564e8d61ff9
MD5 cb4e8bf91da45d54d1f9504cc43ca6a5
BLAKE2b-256 ab54444abd9d183c7b42d74afa92eafd6c9ed9baffcb206cddd7de580d21a602

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7a89ab519103d95d984f2eec35fd38010a7faa685e11764fda1b03e5bda64fbe
MD5 8998c929e594f533c3af15f930f04d24
BLAKE2b-256 8023e3bbd137aaac68c7e268d2183e6231d9fe337b70e9eaff29cdfa958c0c2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f040f0e7dcf43998e33f5bc633c58e4c93227d3b88a497f1d814ea4a5f05b895
MD5 4e9daa6998f4e94abbd3b9602cbbdfbc
BLAKE2b-256 19c8d0f07484bc06e5f35149b55b4cc37c3b5832ce9d9e500c3197c39d809c6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7926aa168258c441f6e30324ac3efc5037ea493cda1c48cc45f0f8f455ac492b
MD5 3ed274be321c686d6dab163915bb581e
BLAKE2b-256 8a80b24c2ac59480745885a20dab8ee4091dd7290a59e8f31c04e8b9753d4b83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f251e55f418726bab117ab0b56b1668a96d60f8795b38c6ed92fae320009c86f
MD5 5148d15e3731f514a5caf0bac4d6ea78
BLAKE2b-256 8fec014ffb93bc2c3c5da2b186e5090fce276167645ad8cc3873494887d8f929

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce296b78ba3b1e635cf4b10cc58d0b6d02077a8a868ebddb0c2c871d54495db0
MD5 69d8f4210a78fe0fda226bfca4ce1588
BLAKE2b-256 0977a66540858a67ec8fce622c4ac17909d1671c80487e9c60532487b0f5b045

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 973bbae3eb26091427b734872c01bd59e22c2fb08c0f8cfcaa10dd8757d1a914
MD5 b68f12c8d74f98466cb564ce78894350
BLAKE2b-256 24992f54e25c8f1a8bfc2cf2ae33250f56fc1a0364504a0a3d73795e3b230ebd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3d0627803828de49c5d96b9e8224818c357c3aa99e6b3479922607d0f194b552
MD5 8f784873eb20c345a4fd66e9884c8b98
BLAKE2b-256 157cb040d1883ebca3a9fd70a245d20506b195fa6040acd0a1a91427150d9c5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a1363d98b304747d88b15fa6a958dc6a5b9ce3648648f55528e634717e88140
MD5 ef160999546d42650074b686e217779c
BLAKE2b-256 7dd7350f9f35537f0acff42f52d66f6f4b72eb053b2b244efa76e961be555350

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0736c54cd70960cf6babf2b9eb47077e04b181ab59faf14327fad63c5b480edb
MD5 dc16d6978de0b23fe6fad15ed9961bff
BLAKE2b-256 7622c14809e3d0b3d6ea27f1b7f8323b85afcea82e39ecba619edd2551562524

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32546ea220b62a9e918e46cef4c11246aaf999f3b43977614d436731aa571cb9
MD5 391f47cb7fdf72f58043a7b1a2b0cfb5
BLAKE2b-256 4b47394a3baab2c81fd11d6634e2a3da409e9279a9eb4e0f5e9bd78ec9e847fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d898886c36e051db511b0ffeae077495bd26ccf1ad1f802672e2e28822323588
MD5 575b7f059dc451a353dac1fa5cc8488d
BLAKE2b-256 07343944c2c26edca4a1a6198d48782685c54729006af68f836d108921453624

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 acf34eef9cc7c477af22f3f2d98e4aa23f370516437e7c09b5d683ad590e998c
MD5 44e9e881f9fe1e43327bed26623ba6fb
BLAKE2b-256 ea76817dee71d9b2d70ef0d0f8bb7a21a7cec74dd8f873444738f4d59073e7fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d24e12449564781b8862e356fa4e2971e83f3c5a952818f2357d6404e43bcb5c
MD5 469f52c8f60976e22fb22183f9e4c6fd
BLAKE2b-256 b0471483fe51f94d9ba3da708ac912fc5d4e35fb1986d9e6b256a67791f31446

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 128a99018307f9a925049e32491f19897e74a828043d5293065fcd01d2d4e7d9
MD5 77e28809f2890e135a32e345c61312bd
BLAKE2b-256 1736649434e4c365a82272bc5de0de7db544a2227650430a85739b647dfe8d4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d942ad2ef5187fcef576c321847a3a78c382cc61eb0d6f6bcbca6b01ecd8164f
MD5 2f241d2e893db398b7db423112839fde
BLAKE2b-256 fb4ef638cd581380e3e5827e82962a5d0c9923c221b67e95d825f3024dbbd3b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 821b2a7d78a58260c1db134edf2fa42c2d2c8919113e9ed1c4ea1ad936e8dfd3
MD5 f2626a316f1adca4d8d7e88a85bfe43a
BLAKE2b-256 f76e265086606c793220201433bc438eb3018754703778c804412c0c0e5cc0b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 dcf0efee1ac5b41574fb01af15080ec94c9d84d121397871fd69dd2a5156eafd
MD5 5a23889dca811da464a0c89ff7b137f0
BLAKE2b-256 a3273762a78d8a18dfbfc70e5712dfd6e979773e422caa681fd69f0e0d0d8878

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 645fd3afcc074afb9bb20c961a26b931f2b3198ff5dd79b899623fcb5423de78
MD5 0e93ce6657c7e27c991f4fd4f51216e8
BLAKE2b-256 82c6408a5765edb6a7765990bbc9ba60e77b508adc40aa1bf6cd615bdafbe1be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a353c7d7a83407225ab1f46bc91ca3862e857c7913280f491b1677df53e97397
MD5 fe449425be4ac71003bfb1a7a415d715
BLAKE2b-256 51b52dc36f959bb63b65c578da201fc69e97dbb3c9090c90167355bf2cdc8cc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3864133cf4673da3d43ce77e601f4d263cd9673fd7cbc92abcc840f8765ed240
MD5 90a45127f5ac4440b3e0a541e39ea823
BLAKE2b-256 f87fef3416c3f542383796228824108f8eecb23bc34f83122ec0b2aab77d91df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 60863b6efc80bc6713af9f00927fc58bcc4a98bf8512b55a96fe0c759643045c
MD5 0e4162fbeb4e154456df15cfec115dc3
BLAKE2b-256 3228e253a968b07787e0b18ec3830ecadb98656c43f60f33ee282f322c001745

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0267f8f49c4bebd433a3ef0dbe8a7ffbcf4f3872fd9eeb71cd0d0e0b746fc7f9
MD5 328d8c2b5cd3baaf1732d1d66032989b
BLAKE2b-256 103f5e5a6f3d981f5b5a1d68a0b28db543e550e112f1a0d3b5d3574174a16eb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a2e2ab429421b17a8e942a2ecbc382276570828a9f4e9b1a511e3ad025d5f33e
MD5 2122ab4063b11d606be5d748b25fa94b
BLAKE2b-256 4eda4a5b2589f8a0aab2eb63091bfadd43a573dd117113acc0384542d9b077bd

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