Skip to main content

The Tiny Vector Search Engine

Project description

USearch

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


Discord     LinkedIn     Twitter     Blog     GitHub

  • Single C++11 header, 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.
  • Node.js bindings for JavaScript.
  • Wolfram language bindings.
  • For Linux: GCC, Clang.
  • For MacOS: Apple Clang.
  • For Windows.
  • Distributed construction.
  • Multi-index lookups.

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

Project details


Release history Release notifications | RSS feed

This version

0.1.0

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

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

usearch-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (109.0 kB view details)

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

usearch-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (101.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

usearch-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl (109.8 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

usearch-0.1.0-cp311-cp311-macosx_10_9_universal2.whl (210.0 kB view details)

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

usearch-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (114.3 kB view details)

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

usearch-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (109.0 kB view details)

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

usearch-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (101.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

usearch-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl (109.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

usearch-0.1.0-cp310-cp310-macosx_10_9_universal2.whl (210.0 kB view details)

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

usearch-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (114.5 kB view details)

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

usearch-0.1.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (109.5 kB view details)

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

usearch-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (101.9 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

usearch-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl (110.0 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

usearch-0.1.0-cp39-cp39-macosx_10_9_universal2.whl (210.4 kB view details)

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

usearch-0.1.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (114.0 kB view details)

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

usearch-0.1.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (109.0 kB view details)

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

usearch-0.1.0-cp38-cp38-macosx_11_0_arm64.whl (101.6 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

usearch-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl (109.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

usearch-0.1.0-cp38-cp38-macosx_10_9_universal2.whl (209.8 kB view details)

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

usearch-0.1.0-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (117.2 kB view details)

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

usearch-0.1.0-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (112.3 kB view details)

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

usearch-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (109.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

usearch-0.1.0-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (117.2 kB view details)

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

usearch-0.1.0-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (112.3 kB view details)

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

usearch-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl (109.4 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f78a2d81e5921e76d1ea900ae3bc1e88ed8acd3b65e6a2fd6641c35a56deb43d
MD5 7d3c501981eb2f3b12a4421b7194ef38
BLAKE2b-256 a13f3c8e5247cf4908d7f23e11ad9cb3dda7a35d23c1dcf255fca4ac5be3b9b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a7e9bb8de50b787f96a3417d8b0434f04470b08e2a2516b74f9d9bdbf54f3214
MD5 5a313728c157bbdcf31aad8cd52c27db
BLAKE2b-256 25c376aa73f68a96affa777c0bec4555e89b0b94bdba692fda5deb1f4f9e3815

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d85140aa083b2f0785bcdb05c610ca4f2d6af8fcdaad421ea9d322067d2a0514
MD5 ed41f8a9b0a11e93298d892aa4f3281c
BLAKE2b-256 ab67ab48c6c7c8ddf1294362a53e43da2b8c9f6ef03f9f5ac981589f0ec8ae9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3bb8087eec13699bd40ecabcf139d2d3b2f1fd8b259405310a24265f6b3f37a0
MD5 2f1ddd624d4037b2096a3ccacb94d244
BLAKE2b-256 c4ba243b700980615269771cf9eb15ce534731af209ce90984f81b23ce5fd927

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 36df71569af997e364ebcfe8a6ccff924671b81e7667a0251ffbbba44437f2c6
MD5 e0b440287bbbdacb95e4fb8e35f86d37
BLAKE2b-256 d4b9822c7f9300024e4f807429f26701ee7f9d2ad675d432d8b80b50e07446cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 381044f4fb8d1fb3398c64511710c1b124b44c65b7a94b656d9c31fc661fbd75
MD5 ea334229802cb979393dfa36d5cc7d48
BLAKE2b-256 956c04b7e86845eb11eb40abb7038bac12deb705c911004c313145d90dd73fa3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3cfb9aeec37cf02c0d9fb1ab1f7e9d7b442715e358e8e37a04a4d363f70d05dc
MD5 94755bca91344203f9a48a310ecf5683
BLAKE2b-256 616607f3b61535584e996cbfdf035f41e62c3d775f0d7daf98bf2a89e89e03d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87e32a3068ba159bb25c15d955aac3292d5460508feba83805eb173997cfe0a0
MD5 94d40d9834812a242bda13870ff15c27
BLAKE2b-256 f3dff3c65997d205ad8da7db0731c6ad499aedf5aaeade87a0bf66259b1c3b21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f228a0dda5ea95c0f0dfeb361aeaea4801f5ffb3b13d4b5106641370ffc9fc1e
MD5 de6765827513b8acf2713d7997d4c5ac
BLAKE2b-256 143d71220e964ba9b9a77a849fabac183fd1c868744b107f97744db38f93ded6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a4c5d300a7c0c1b9d82c8a2f76f49bc3c0e48baf9751878803b04febdbd61cad
MD5 296da9e149dfc3a8b8171c28750ee12c
BLAKE2b-256 8d8b1373ac89dc947dd61044bc5722ead0846b0808ecbb4eab4931f793adc6a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf4800d8a65a1b32ee48b047839608c66db50c52641cb20dfe6a79f4da7f2604
MD5 a6331a956957e2af002e57098235babe
BLAKE2b-256 5aee584250c87478792ea6bfd2f7843745561957a3a5dddfe3073371fb727e3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a905afd2e8fb3680e089393440b0e0954dc973aa3e4a41a1cc95b4aefaac2fdd
MD5 13773ce64d49427976293d298957e0c8
BLAKE2b-256 6a321d28bce2b7645c004b6826e5758eaa4b7229fe8cc1af1bd8b3f8c988d993

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03b15447c00df220a852f39827b28f4929e20d120353464e6650673a9ec2f122
MD5 d2dc9bced694d6d7add5ebbdea332e73
BLAKE2b-256 e66ede2fd3d379cee579ae54f4e3233879303733a497a44d773dfa0be28df387

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f71e959d4f23445ad818491f8e774c4381d321e03a81cd9b169d2da4b818441d
MD5 35b912b59dbbc3d0bd290ff223ee988d
BLAKE2b-256 4e9696383287e1e910e4146241bede6e56f6b75d5ce88d96c8ace4201e93431c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d0dbf6d2eb62c6a28629e23a390a5661439d2858dae58f8d0e5ff08e8d8c7bd7
MD5 0ca882c22320f732050d9c441b548164
BLAKE2b-256 5467901befa4a1a9775dd143860241c718025a2db35beb01679d90463cd6280b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b9e5f2d223b910d2c45a89dbb768ae0f0ec7f67cb2c0ea32a627c57127f264e3
MD5 428ccd217a3d15964c391aab49dbc66f
BLAKE2b-256 1c52a77582f23001abd685d11069681255ba864708ac1b57900d379077b92e47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9d2631705254d2cac30f8d38e9bf9d91e38fae1e4bb744d4b61796d2343f2402
MD5 baeb21157c325ea1fa9d9028c7d6635c
BLAKE2b-256 c9cc1033dcc4a7f5ca9282ad2254ae916959f1d3c71848a9a5b766c995645564

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ceafca5ba351539f3ba72bfb5335f2fe6af6883a7514d5ec242b0af3e6590939
MD5 5781b560251f4830cf3d72be7fd26a34
BLAKE2b-256 1cc965c38553699bccc6abb06762804f87f8ba5e91e17c00190d56635d061c99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f48198749f5c2bc4232098405603df297bb4a761969388f1001e995de3bed6ba
MD5 13d8437893c0e75b008415f06da0a51f
BLAKE2b-256 095f6a47e08a9b60d0d98f6e2f214925551d4892d9aed701b21e9defc2d50962

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 67ede70354669e3a53db4424c48fdc988b39224286f58eb41137211d4bd4f755
MD5 089ec82a00d7cbce1a6836ef9e40ada8
BLAKE2b-256 0b203c2f02e738c793bd80e41765a45b287de3d90c367379cef62137863f7abe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b34b9d2fb653eb4c86bc5becd32f32c6c78851b7d6b9a76774a006993cc8a0c
MD5 6db37795dc5f31e09868c2c625808780
BLAKE2b-256 6a79805576c6b4af82bcb272d0fed6df06dd24c27fd23f7dd4c7ca5725e9dc96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e343c9e643133d83d8c288d6b00245ff182ab405327c2ca97c74453ff45021e
MD5 8ece3494381709b1ef2570524a314279
BLAKE2b-256 7389b1a2ab59175f9c8c799ea9d1c624ad128309b3a279477882c37a53d84881

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d129f502ab1b9c7cc381d44f59f1e48b90876a3044ad282cd3c84dce87e78628
MD5 ea56c972f1934ffeabeb9aa242911dfc
BLAKE2b-256 f25807feb6ef2abc63f4e1efae20bd45736b59aed31366f530adb5b94aad8afe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp36-cp36m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a477e4acb1eb80bc7ab91326048bccc0bbe889ab55bea1984a6545cf4fad68fc
MD5 884615f1e26c5902f22f9a06622196e3
BLAKE2b-256 37cbe0db859d4c5f1f91b890b67156c237cbe516cd402d98e66ff0c845e23658

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp36-cp36m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e5350ee65d7d14831b976a93502879acb2439af49e6fd1faa6f94a5659828853
MD5 3a4171854b2d31569059aa9530040354
BLAKE2b-256 7378cba595cbb0f78d9d5d0e7007b0da651a68f8d48f672255b894c0227c3785

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for usearch-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 650cf4bbdbb10964e6b1e0e446985ff4853489f8ddc1922e517a6ead2f9d05a6
MD5 41b5620329f32b9f873c7c8d237ff056
BLAKE2b-256 62e58dee6504f74e1f529d5ba0426fe0531652113196a7c9f65f1421015c9fd7

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