Add faiss-node-native as async alternative vector store for FAISS

Summary

I’m the maintainer of faiss-node-native (@faiss-node/native on npm),
a high-performance async Node.js native binding for Facebook FAISS.
I’d like to propose adding it as an alternative to the existing
faiss-node integration in LangChain.js.

Problem with current faiss-node integration

The current LangChain.js FAISS vector store uses faiss-node which
has a synchronous blocking API it freezes the Node.js event loop
during search. In production servers handling concurrent requests,
this causes significant performance degradation and unresponsive APIs.

See this open issue for reference:

What faiss-node-native offers

  • :white_check_mark: Fully async Promise-based API — never blocks the event loop
  • :white_check_mark: Thread-safe concurrent operations with mutex protection
  • :white_check_mark: HNSW index support (not available in faiss-node)
  • :white_check_mark: Buffer serialization — store indexes in Redis/MongoDB
  • :white_check_mark: Multiple index types: FLAT_L2, IVF_FLAT, HNSW
  • :white_check_mark: Full TypeScript support
  • :white_check_mark: Actively maintained (v0.1.5, 103 commits)

Links

Proposal

Two possible approaches:

  1. Add faiss-node-native as a drop-in alternative alongside
    existing faiss-node support
  2. I can submit a PR implementing the integration if the
    team is open to it

Happy to help with implementation!