Repolode
unum-cloud

unum-cloud/USearch

Biblioteca C++ de arquivo único para busca aproximada de vizinhos mais próximos e clustering de vetores, com bindings para Python, JavaScript, Rust, Java, Go, Swift e outras linguagens.

Alternativa open source a:Pinecone

Estrelas
4,346
Forks
360
Issues abertas
110
Último commit
há 3 dias

O que é?

USearch é um mecanismo de busca por similaridade e clustering baseado no algoritmo de grafos HNSW. Ele indexa vetores e aceita métricas de distância definidas pelo usuário, podendo ser usado em buscas semânticas, consultas a impressões digitais moleculares ou consultas geoespaciais com distância de Haversine. O núcleo é um único header C++11, e há bindings para C, Python, JavaScript, Java, Rust, Go, Swift, C#, Objective-C e Wolfram.

O índice pode armazenar vetores em formatos de precisão reduzida, como bf16, f16, e5m2 e i8, além de um tipo binário para as métricas Tanimoto e Hamming. Os índices podem ser salvos em arquivo, stream ou buffer mapeado em memória e servidos diretamente do disco, sem carregar tudo na RAM. A busca pode aplicar funções de predicado durante a travessia do grafo, e há um modo exato de força bruta para coleções pequenas.

O projeto também oferece clustering de K vizinhos mais próximos sobre um índice existente e uma operação de join para correspondência aproximada um-para-um ou muitos-para-muitos. Vários bancos de dados e ferramentas, incluindo ClickHouse e DuckDB, o listam como backend de índice vetorial.

Recursos principais

  • 01Biblioteca em um único header C++11, com uma base de código pequena
  • 02Busca aproximada de vizinhos mais próximos baseada em HNSW
  • 03Métricas de distância definidas pelo usuário, incluindo métricas Python compiladas com JIT
  • 04Armazenamento em precisão reduzida, como bf16, f16, e5m2 e i8
  • 05Disponibilização de índices a partir do disco ou de arquivos mapeados em memória
  • 06Filtragem por predicados durante a travessia do grafo

Casos de uso

  • Adicionar busca semântica sobre embeddings a um aplicativo ou serviço
  • Incorporar um índice vetorial a um aplicativo móvel ou do lado do cliente em várias plataformas
  • Executar buscas por similaridade em impressões digitais moleculares ou coordenadas geoespaciais
  • Servir índices muito grandes a partir do disco para reduzir o consumo de RAM

Tópicos

Perguntas frequentes

O que é USearch?
Biblioteca C++ de arquivo único para busca aproximada de vizinhos mais próximos e clustering de vetores, com bindings para Python, JavaScript, Rust, Java, Go, Swift e outras linguagens. USearch é um mecanismo de busca por similaridade e clustering baseado no algoritmo de grafos HNSW. Ele indexa vetores e aceita métricas de distância definidas pelo usuário, podendo ser usado em buscas semânticas, consultas a impressões digitais moleculares ou consultas geoespaciais com distância de Haversine. O núcleo é um único header C++11, e há bindings para C, Python, JavaScript, Java, Rust, Go, Swift, C#, Objective-C e Wolfram.
USearch é gratuito? Qual é a licença?
USearch é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
USearch ainda é mantido?
Manutenção ativa. O último commit de USearch foi em 18 de out. de 2026.
Para que posso usar USearch?
Adicionar busca semântica sobre embeddings a um aplicativo ou serviço Incorporar um índice vetorial a um aplicativo móvel ou do lado do cliente em várias plataformas Executar buscas por similaridade em impressões digitais moleculares ou coordenadas geoespaciais Servir índices muito grandes a partir do disco para reduzir o consumo de RAM
Onde consigo USearch?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/unum-cloud/USearch

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados