Skip to content
Tool Review · Vector Databases & AI Search

FAISS

FAISS is Meta's MIT-licensed C++ library with Python wrappers for similarity search and clustering of dense vectors, with optional GPU support; it is a library to embed in applications, not a database.

Free Research-based review
Last verified November 2026. Version checked: 1.15.1 (latest GitHub release, 16 September). Features and pricing for commercial products change; check the vendor site for the latest details.
Vendor
Meta (Fundamental AI Research)
Price
Free
Platforms
Embedded library (C++ or Python), CPU, NVIDIA GPUs (CUDA), AMD GPUs (ROCm)
Licence
MIT
Product type
C++/Python library (MIT), not a database
Works with
Python and NumPyC++ applicationsNVIDIA cuVS (optional GPU backend)Conda packages faiss-cpu, faiss-gpu and faiss-gpu-cuvs

At a glance

Product typeC++/Python library, not a database or server
Vector index typesFlat, IVF, PQ, scalar quantizer, LSH, HNSW, NSG and combinations
Hybrid searchNot provided: no text search
Metadata filteringID-based selection (IDSelector) only; metadata must live elsewhere
Embedding integrationNone: you supply the vectors
Scaling and multitenancyIn-process; GPU support; sharding and tenancy are up to your application
Deployment (managed or self-hosted)Embedded in your application; no managed service
Licensing and pricing modelMIT, free
Short answer

FAISS is the right tool when you want fast, fine-grained control over vector indexes inside your own code, for research, offline batch jobs or as the engine behind a service you build. It has no server, metadata store, access control or replication, so applications that need those should use a vector database or a database extension instead.

How we know: This profile is research-based: licence, languages, GPU support, index types, filtering and version were checked on 7 November 2026 against the FAISS GitHub README, its releases page and the wiki pages on Faiss indexes and per-query search parameters. We have not run FAISS for this profile, so no speed or recall figures are given.

Overview

FAISS is a library for efficient similarity search and clustering of dense vectors, developed mainly by Meta's Fundamental AI Research group. It is written in C++ with complete Python and NumPy wrappers, and offers exact search, inverted-file (IVF) indexes, product and scalar quantization, binary indexes and graph methods such as HNSW and NSG. Precompiled Conda packages are published for CPU, GPU and NVIDIA cuVS builds; release 1.15.1 is the latest on GitHub.

FAISS stores vectors identified by integer IDs and returns nearest neighbours; it does not store documents or metadata, run as a server or handle replication. Applications usually keep metadata in a separate database and map IDs back to records. Other systems embed it as an index engine: OpenSearch, for example, uses Faiss as the default engine for its k-NN vector field.

Key features

  • Exact search with flat indexes (IndexFlatL2, IndexFlatIP) for L2 and inner product
  • Inverted-file indexes (IndexIVFFlat, IndexIVFPQ, IndexIVFScalarQuantizer) for large collections
  • Compression with product quantization, scalar quantization, additive quantization and polysemous codes
  • Graph-based indexes: HNSW (IndexHNSWFlat), NSG and NNdescent
  • Optional GPU acceleration through CUDA or AMD ROCm, plus NVIDIA cuVS backends
  • Search restricted to a subset of IDs with an IDSelector passed in SearchParameters
  • Clustering of dense vectors in the same library

Integrations and ecosystem

Python and NumPyNVIDIA CUDA and cuVSAMD ROCmConda packagesOpenSearch k-NN (Faiss engine)

Pros and cons

Pros

  • Wide choice of index and compression methods with fine-grained parameters
  • Optional GPU acceleration on NVIDIA and AMD hardware
  • Permissive MIT licence and no service fees
  • Used as an index engine inside other systems, so skills transfer

Cons

  • Not a database: no persistence layer, metadata storage, access control or replication
  • Filtering is by ID selectors only, so attribute filters need your own code
  • Choosing and tuning index types needs vector search expertise
  • Conda is the documented binary install path; other builds need CMake

Pricing

FAISS is free and open source under the MIT licence. There is no paid edition or managed service from Meta; your costs are the servers or GPUs that run your application.

Pricing checked on the vendor's official page on 7 November 2026. Prices change; confirm before buying.

Who it is best for

Machine learning engineers and researchers who need high-control vector indexes inside their own code, batch similarity jobs, or an engine for a custom retrieval service.

Typical use cases

  • Offline deduplication and clustering of large embedding sets
  • Nearest-neighbour search inside a custom recommendation or retrieval service
  • Research and benchmarking of approximate nearest-neighbour methods
  • GPU-accelerated similarity search over large batches of vectors

Who should look elsewhere

  • Application teams that need a managed, queryable vector store with metadata filters and durability; consider pgvector or a vector database such as Qdrant or Milvus.

Verdict

Our take

FAISS is a mature, permissively licensed library that gives experts direct control over vector indexing on CPU or GPU. It is a building block rather than a product: teams that need storage, metadata, filters and operations should pick a vector database or extension built on similar techniques.

Frequently asked questions

Is FAISS a vector database?

No. FAISS is a C++ library with Python wrappers for similarity search and clustering. It keeps vectors by integer ID and has no server, metadata storage or replication, so you build those around it or use a vector database.

Does FAISS support GPUs?

Yes, optionally. The README says GPU support is provided through CUDA or AMD ROCm, and NVIDIA cuVS backends can be enabled; Conda packages faiss-gpu and faiss-gpu-cuvs are published.

What licence is FAISS under?

FAISS is MIT-licensed, so it can be used in commercial products at no cost.

Can FAISS filter search results?

Only by ID. You can pass an IDSelector in the search parameters to restrict a query to a subset of vector IDs; attribute-based filtering has to be built in your application.

Sources

Checked November 2026.

Listed in: Vector Databases & AI Search.

How we research reviews and what star ratings mean: our editorial method.

Compare your options

Browse the full tools directory or see the head to head comparisons.