vearch is a free, open source machine learning infrastructure project written in Python and released under Apache-2.0. It has 2,333 GitHub stars, 366 forks and 170 open issues, and was last pushed 3 months ago. On this registry it ranks #48 of 89 tracked projects in Machine Learning Infrastructure, with 5 head-to-head comparisons available. It gained 3 stars over the last 30 tracked days.

What is vearch?

Vearch is an Apache-2.0 cloud-native distributed vector database that provides similarity search over embedding vectors for AI-native applications, built for teams that need retrieval, RAG, or visual search at a scale where an in-process library is no longer enough.

What it is

Vearch is a distributed system for storing, indexing, and retrieving embedding vectors together with their scalar metadata. Its core vector search engine, Gamma, is implemented on top of faiss, and the surrounding service turns that engine into a cluster: a Master component handles schema management, cluster-level metadata, and resource coordination; a Router exposes a RESTful API for upsert, delete, search, and query while routing requests and merging results; and PartitionServer (PS) hosts document partitions with raft-based replication. Clients reach the cluster through REST APIs or through SDKs in Python, Go, Java, and Rust.

The concrete problem it addresses is the gap between a research-grade vector index and a production retrieval service. Applications that build similarity search directly on a vector library must handle partitioning, replication, schema changes, and request merging themselves. Vearch replaces that hand-rolled index-and-service layer by shipping the faiss-based engine as a managed cluster component with replication and elastic scaling, exposed over HTTP rather than through a linked library. It lives in the AI-native and RAG ecosystem, where it acts as the vector store behind frameworks such as Langchain, LlamaIndex, Langchaingo, and LangChain4j.

Key capabilities

  • Hybrid search that combines vector search with scalar filtering in the same query.
  • Router RESTful API surface covering upsert, delete, search, and query, with request routing and result merging across partitions.
  • PartitionServer stores documents in partitions with raft-based replication for reliability.
  • Gamma vector search engine, built on faiss, handles storing, indexing, and retrieving both vectors and scalars.
  • Official SDKs for Python, Go, Java, and Rust, plus integration packages for Langchain, LlamaIndex, Langchaingo, and LangChain4j so Vearch can serve as a memory backend.
  • Deployment paths covering a Helm chart (vearch/vearch), Docker Compose profiles for standalone and cluster, DeployByDocker, and SourceCompileDeployment.
  • Retrieval from millions of objects in milliseconds, with elastic scaling out as data grows.

Who uses it and how

  • Teams building retrieval-augmented generation pipelines wire Vearch in as the vector store for Langchain or as the knowledge base backend for LlamaIndex, keeping embedding storage separate from application code.
  • Visual search deployments follow the VisualSearch demo, which indexes billions of images and pairs Vearch with an image retrieval plugin for object detection and feature extraction.
  • Platform operators run the Master, Router, and PartitionServer topology on Kubernetes via Helm, or bring up self-contained environments with the standalone and cluster Docker Compose profiles.
  • Polyglot organizations use the Python, Go, Java, or Rust SDK against the same cluster, so services in different languages share one retrieval layer.
  • The design traces back to a real-time visual search system built for the JD e-commerce platform, cited in the project's 2019 arXiv paper.

Getting started

Install on Kubernetes with helm repo add vearch https://vearch.github.io/vearch-helm followed by helm install my-release vearch/vearch, or run Docker Compose from the cloud directory, copying config.toml for --profile standalone or config_cluster.toml for --profile cluster. DeployByDocker and SourceCompileDeployment documents cover the remaining paths.

How it compares

The supplied facts name no paid products that Vearch replaces, and no directly comparable vector database is listed either. Within this registry it stands alone in its category; faiss appears only as the engine underneath Gamma, not as a competing product.

When to use it — and when not to

A self-hoster must operate a multi-component cluster — Master, Router, and PartitionServer — with raft-based replication, plus the configuration files and Helm or Compose tooling that go with it; that is real operational weight compared with embedding a single-process index. Teams that want a fully managed hosted service, or that only need similarity search over a small in-memory collection, should look elsewhere, since no hosted option appears in the facts. The project also carries 170 open issues, and documentation is split between English and Simplified Chinese, so non-Chinese readers may find some material thinner.

project readme (upstream, from github) — read inline

简体中文 | English

License: Apache-2.0 Build Status Go Report Card Gitter

Overview

Vearch is a cloud-native distributed vector database for efficient similarity search of embedding vectors in your AI applications.

Key features

  • Hybrid search: Both vector search and scalar filtering.

  • Performance: Fast vector retrieval - search from millions of objects in milliseconds.

  • Scalability & Reliability: Replication and elastic scaling out.

Document

Restful APIs

OpenAPIs

SDK

SDK Description
Python SDK Python client for Vearch
Go SDK Go client for Vearch
Java SDK Java client for Vearch
Rust SDK Rust client for Vearch

Usage Cases

Use Vearch as a Memory Backend

Vearch integrates with popular AI frameworks:

Framework Integration
Langchain Use Vearch as vector store in Langchain
LlamaIndex Integrate with LlamaIndex for knowledge bases
Langchaingo Go implementation of Langchain with Vearch support
LangChain4j Java implementation with Vearch integration

Real world Demos

  • VisualSearch: Vearch can be leveraged to build a complete visual search system to index billions of images. The image retrieval plugin for object detection and feature extraction is also required.

Quick start

Kubernetes Deployment

# Via Helm Repository
$ helm repo add vearch https://vearch.github.io/vearch-helm
$ helm repo update && helm install my-release vearch/vearch

# Or from Local Charts
$ git clone https://github.com/vearch/vearch-helm.git && cd vearch-helm
$ helm install my-release ./charts -f ./charts/values.yaml

Docker Compose Deployment

# Standalone Mode
$ cd cloud && cp ../config/config.toml .
$ docker-compose --profile standalone up -d

# Cluster Mode
$ cd cloud && cp ../config/config_cluster.toml .
$ docker-compose --profile cluster up -d

Other Deployment Methods

Components

Vearch Architecture

arc

Master: Responsible for schema management, cluster-level metadata, and resource coordination.

Router: Provides RESTful API: upsert, delete, search and query; request routing, and result merging.

PartitionServer (PS): Hosts document partitions with raft-based replication. Gamma is the core vector search engine implemented based on faiss. It provides the ability of storing, indexing and retrieving the vectors and scalars.

Technical Reference

Academic Citation

When using Vearch in academic or research projects, please cite our paper:

@misc{li2019design,
      title={The Design and Implementation of a Real Time Visual Search System on JD E-commerce Platform},
      author={Jie Li and Haifeng Liu and Chuanghua Gui and Jianyu Chen and Zhenyun Ni and Ning Wang},
      year={2019},
      eprint={1908.07389},
      archivePrefix={arXiv},
      primaryClass={cs.IR}
}

Community Support

Connect With Us

Connect with the Vearch community through multiple channels:

  • GitHub Issues: Report bugs or request features on our issues page
  • Email Discussion: For public discussion or questions, contact us at vearch-maintainers@groups.io
  • Slack Channel: Join our community on Slack for real-time discussions

Contribution

We welcome contributions from the community! Check our contribution guidelines to get started.

License

Vearch is licensed under the Apache License, Version 2.0.

For complete licensing details, please see LICENSE and NOTICE in our repository.


© 2019 Vearch Contributors. All Rights Reserved.

Frequently asked questions

Is vearch free to use?

vearch is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does vearch do?

Distributed vector search for AI-native applications

What is vearch written in?

vearch is primarily written in Python. Its source is publicly available at https://github.com/vearch/vearch, and it has 2,333 GitHub stars.