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.
  • Java bindings: cloud.unum:usearch on GitHub.
  • GoLang 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) { });

index.save("index.usearch"); // Serializing to disk
index.load("index.usearch"); // Reconstructing from disk
index.view("index.usearch"); // Memory-mapping from disk

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

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

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

usearch-0.1.7-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.7-cp311-cp311-macosx_11_0_arm64.whl (106.6 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

usearch-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl (115.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

usearch-0.1.7-cp311-cp311-macosx_10_9_universal2.whl (219.3 kB view details)

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

usearch-0.1.7-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.2 kB view details)

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

usearch-0.1.7-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.6 kB view details)

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

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

usearch-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl (114.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

usearch-0.1.7-cp310-cp310-macosx_10_9_universal2.whl (219.4 kB view details)

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

usearch-0.1.7-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (119.5 kB view details)

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

usearch-0.1.7-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.7-cp39-cp39-macosx_11_0_arm64.whl (106.8 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

usearch-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl (115.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

usearch-0.1.7-cp39-cp39-macosx_10_9_universal2.whl (219.7 kB view details)

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

usearch-0.1.7-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.7-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (113.4 kB view details)

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

usearch-0.1.7-cp38-cp38-macosx_11_0_arm64.whl (106.5 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

usearch-0.1.7-cp38-cp38-macosx_10_9_x86_64.whl (114.9 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

usearch-0.1.7-cp38-cp38-macosx_10_9_universal2.whl (219.2 kB view details)

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

usearch-0.1.7-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (122.3 kB view details)

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

usearch-0.1.7-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (116.6 kB view details)

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

usearch-0.1.7-cp37-cp37m-macosx_10_9_x86_64.whl (114.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

usearch-0.1.7-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.7-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (116.5 kB view details)

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

usearch-0.1.7-cp36-cp36m-macosx_10_9_x86_64.whl (114.5 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a37b3abef278d0ea0bc2c948c4655efd8e91b733dbb501e7fd4da36883aa1ad
MD5 bf973c56afd67b42736a0ad4bc78d47b
BLAKE2b-256 32b9b3b4d49f27756937c4d3f1383b25a9d21bdce6da610a73fa881b9bb31987

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4564700117dfe291547ae079c7db2a289d8c101f75fbdcc2a3b013fb3d04ec18
MD5 344ec14284abd56b90891bb50d6e5a2a
BLAKE2b-256 df159c3e2e33c58440270e17c5b9af9e251ffbe90a25217897f932d8737d5cd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cb882e5cc178f2d7f72177c088bd8e02b3477c0e48364e79b90cbde41e0aae3
MD5 16d0a860b6637d8c8d07073408637f37
BLAKE2b-256 fda9760cc9380466e1262576b4d96117978f3314590f371e9bc2c261d79a112b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e9e7638cec8b85cb6e1b96ea4e1d54291b1030c3e9a3d060f0ee2f20b4825f9d
MD5 95d24b149f1d5a227ec098c03426408b
BLAKE2b-256 9d02c2c21d68fd2cbc6b43d76081f479cdf39118432f5dba482cafc1e2468b74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7b03add16e032cffe85f8c1d0637baaa41e00291a607c3dd3986f802c127071e
MD5 615821b441159da6f9f9acba5916caaf
BLAKE2b-256 604386fa333ef7940d8a5e8735a84934a8169d58803b9b8b9c412bcbd7172d41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f527642f028f159e886c7765968a8ab860db74159f4621a90395a396cc0b38c
MD5 a979122d3cb554c120f2ec8e938675ad
BLAKE2b-256 22f527a6dbd81e86f5b17957b45d0a38298e5616532c094c8491a4ffb0ff280a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3219d5b9a4bd36086ebf40ee56838e6f44a84860ebfacf564828d4213c5f3d81
MD5 d77dc5e776ce198995c8ccc0d468e11b
BLAKE2b-256 84f19d9f608fa8e7379bcd4974f20f4346ef5082362b86fbb89eb0e6cd91bd47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 28d98966fea077acbdfd6d4d5991a559acf92688d361c2ebfb74ac4f43e4b8e5
MD5 8020ef8b613e21172f1a7e569e2c48c0
BLAKE2b-256 321c1de03cf42bb700f3c5b24a728059fd567b5870886423258c5c1017d01c36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cf01c2e8da65772b166229814232d5dd048ceb1603e0b750037e50b59bf6f6b9
MD5 6634e1be323567e476e6e31001405b91
BLAKE2b-256 31ddbfd9691818032dfd0fd63aca7e09f471ad9ac708c4e996de8ecd5e8a4eac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7a28c3333d44017ee48d4d9204f16d655b3cb635b1c8f823653381ff20e3c5b3
MD5 6a45cd1e54205f87b2a7f6fb66af1956
BLAKE2b-256 2397da97a57ea8d2af41babfb9819f857a0402f2046a78e8923103be8fbd7995

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c38bbdf7e9c59520dc3b787c6f05362cc88c57ce07cf491cd8fe58b217cc0609
MD5 dfc7305777a77387fe5e11c1bc8ca637
BLAKE2b-256 efb0f6ee2078a79fc6bc541bf05cd40c54a5c8788a0813c942baf585a3da290c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8b9ff22f69344d766d3800ae7cb9d83f9ab387b49198582cb0f9dd9f8a453b5c
MD5 3a298ed751771c856ae4c6a1ce6396ef
BLAKE2b-256 e0aa274340e9bd63eef8ead8652bfedc1cf039961db8fb05652622c7b0a33876

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e5763ae173f9dfe71e4f0fc71a10f0592dc5e669727cd2374b36e9d8845d232
MD5 318d70402a650248cb4a5f24864a2fa7
BLAKE2b-256 a363a2ea0a86e9a91755abaef238743537bd81e5d4789f2dd9b6051bf771678d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 72b7419dcc40b339c9a4bba55127ba72c421e5eb6531c6151a529a3651b1bc8a
MD5 73a57570cd11f33cee4cb9c40c6eb862
BLAKE2b-256 53b27f5e9795091808e6127f69331be2d07aedb0066fb8c709ad1263469a51d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 db8adbbcceb3c478f8da4a434ae52234d59cf87eb2daa23f565d0f8ddf491808
MD5 09a0ad6049f1a39ed1221600f9bb42b5
BLAKE2b-256 4a02cfe9c16adad9df5cb3ff24957848e895c8886dffe8240e85eb14c3eb1e5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 854055a5c2848581f55e34744821361c9955ed33366814401a4724f42db8f897
MD5 90654974b54f7c3de1fdde5de26145b9
BLAKE2b-256 372dc6697b00e299a95d0fea21b816c8621154e7bafda494f2d4896add5fbd4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 64d1b4161359af8bff920c309dbe64a4fd21d9453990cb17ee2cbd69241627ac
MD5 aaa7d53b134c36d323891278bef7b699
BLAKE2b-256 5de63eb865db58fbe25424ab0cd986e8ff1462eb4ca60c55b3f02459367f8d76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 19436ea84671f9826448c3ca2431cebe93010f12a7b129ee381d97f0cf38e5eb
MD5 8a70336f07530dae83f349018a8e5fe0
BLAKE2b-256 8ee0bf3761d646e7ce21c8f8aaab7c2ddf567c1c7d80e096f394aa269ef07935

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fbfbf0585cefcf0357f19293e95bf8d9de1914d17c713f388a737df2d6ee9dd6
MD5 3570c0b71100117a0723583d064df0ff
BLAKE2b-256 a51a712a5bc1843e3447ac7024d18db486688de3c658d629d6f3eedaff4715e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a141d9ef0fb93ba2cc43a73443b06628bba10583e839878d69e6097118535640
MD5 dd5569a3ecb834e0b5de8fdedc4352b5
BLAKE2b-256 1f42232cb04e7cea676fe4c78f36222db96528b6979e4c87fec08f496a99e54b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0251f9f83446a6da605f3fd0fb9652ff334016d79c8483abe26c84649507d0f8
MD5 1f17ffefaa96aa47342fc9df81aa3c87
BLAKE2b-256 ab27a2fabf5b6d7e38b5df33cb1506a011f4e1914ecfb800212846666057bd31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a20ce5f0e239b9e336146be48aee3321b6a42fcf4f9128bc1aa37d291e4f43e0
MD5 cea0be07115c7dfb0f6b2bf1b5dfdcf3
BLAKE2b-256 d63310d31f63f26c89bc2f80c0a4b88d9de4b3d0ee295b2edf4917ff80a7acd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 83d76ca5f58a47be1b2d6fe3642d377478066a9ec34b83c5ee97aec09f319066
MD5 608b66ee64877fdfc9251f5aa53a1876
BLAKE2b-256 50d7e7c001baa1fa8bd04ad0851dfc2297c4b09f79aa67305ea1d9fec037d009

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8be5cafbde7c756e624a739817eec342c2e61db5026d4734f1f5241b6e662981
MD5 dddc86c88eeed077acfc1fb36898954c
BLAKE2b-256 7de7b582635ec5967a655d47d825f9e6b72902ceeb2cff38ed8ca582cf97e1ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 86f7ea8c6cf36e28d22036ecc340bc841b47e5a8516ffa3926876349d8c820d2
MD5 1fc9a36d1cc76d4c3cb55f135ab99326
BLAKE2b-256 2b94363acac4efd859403a71c4f9dae7f945fd07d1a12da883e6f7a9d63da915

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.7-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9789d668e0021e1ff97acc8c7df05736b525c8d8829ed7d7f6306cbc2c864e6a
MD5 22826c02f5b64ea618f0b6aef5269e17
BLAKE2b-256 e27387f3709ee976ba6cd775648cf3ab70c07590e8dadecdda9d77cc360824e8

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