Um banco de dados vetorial open source que roda dentro da aplicação e oferece busca por similaridade com baixa latência, sem precisar de um servidor.
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
O Qdrant é um mecanismo de busca por similaridade vetorial e banco de dados vetorial baseado em Rust, com filtragem por payload, voltado a busca semântica e recomendações.
Extensão open source de busca por similaridade vetorial para Postgres, que armazena e consulta embeddings junto aos seus dados relacionais.
Banco de dados vetorial open source que armazena objetos e vetores juntos, combinando busca por similaridade vetorial com filtros estruturados.
Uma biblioteca de recuperação e banco de dados embarcados para IA multimodal, com busca vetorial, full-text e SQL em dados armazenados no formato Lance.
Biblioteca C++ com bindings para Python que permite fazer busca por similaridade e clustering eficientes de vetores densos, com aceleração opcional por GPU.