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 hashes)

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 hashes)

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 hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

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 hashes)

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 hashes)

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 hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

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

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 hashes)

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 hashes)

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 hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

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

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 hashes)

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 hashes)

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 hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 macOS 10.9+ x86-64

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

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 hashes)

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 hashes)

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 hashes)

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 hashes)

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 hashes)

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 hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

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