A memory toolkit with several identities
RuVector starts with a sensible job: keep agent memory on the same machine, embed text locally, and recover it in later processes. The shortest demo uses npx ruvector hooks to remember and recall a decision. The Node API exposes an ONNX embedder and persistent VectorDB, while Rust users can work closer to the storage and index code. No database server or API key is required for that default path.
The repository quickly expands beyond an embedded vector store. Its capability map includes graphs, hybrid retrieval, temporal scoring, compression, snapshots, replication, PostgreSQL, browser WASM, learning adapters, MCP sharing, and research components for reranking and optimization.
The README handles this better than most ambitious projects. It names the implemented surfaces, points to source files and architecture records, and labels gaps plainly. The unified four-type memory manager lacks native save and load. Its cross-type consolidation is incomplete. Replication is made of local primitives rather than a finished network plane.
What happened when we ran it
We cloned commit c6bb23c into a fresh Debian container with three CPUs, 8 GB of RAM, Node 22, no secrets, and no elevated privileges. The checkout was large: 12,472 files, about 2,610,077 lines of source, and 340.9 MB. It is a workspace monorepo with a tests directory and 53 CI workflow files, but no repository-root Dockerfile.
The npm install completed in 78 seconds. It added 483 packages and occupied 959 MB. Both subsequent commands stopped almost immediately. The build script ran cargo build --release, and the test script ran cargo test --workspace; each failed with exit code 127 after 6 seconds because the shell could not find cargo. This Node image lacked the Rust toolchain that the README requires for source builds.
The dependency audit is the larger concern. It reported 33 known vulnerabilities: one critical, nine high, and 23 moderate. The release note for npm version 0.2.40 says its published tarball passed a production dependency audit with no reported findings. Our result comes from the measured repository commit and root installation, so teams should inspect the exact dependency tree they plan to ship rather than transferring the release claim to another checkout.
Start with the smallest usable surface
For a Node agent, VectorDB is the most credible entry point. It persists vectors, metadata, configuration, and searchability at a chosen path. The bundled ONNX route avoids per-query embedding fees, though its first semantic use downloads and caches a model. A store must keep the same embedding model and dimension. RuVector provides a re-embedding command for migrations, which is better than silently mixing incompatible vectors.
Search results use distance, so lower scores are closer. That detail sounds small, yet getting it backward would produce bad ranking logic. Metadata filtering also needs testing: the core implementation filters a retrieved candidate set and can return fewer relevant items than requested under selective conditions. The project points those workloads toward its ACORN component or application-side prefiltering.
Restart behavior deserves its own acceptance test. Opening a persisted HNSW database currently enumerates stored vectors and rebuilds the index. The README tells users to measure cold start against the intended memory size. That is the right warning for an agent service expected to recover quickly after a deploy or crash.
Learning and distribution need boundaries
RuVector records outcomes and feedback for learning; reads alone do not change learned weights. This distinction prevents the adaptive label from promising automatic improvement on every query. SONA adapters, outcome-aware routing, GNN reranking, and Darwin optimization are separate components with their own triggers or benchmarks. They are not hidden behavior inside the ordinary search call.
The distributed story is earlier. Shared Brain is an optional hosted plane with a new network and trust boundary. Replication currently exposes primitives, and the Raft work lacks complete response transport and snapshot installation. Teams needing a supported clustered vector database should choose one instead of treating these components as production replication.
MCP access also needs an explicit policy. The README recommends installing a pinned local package, choosing the read-only profile where appropriate, listing available tools at runtime, and setting allow or deny rules. With no policy, the broader compatibility surface remains available. Retrieved memory is untrusted input, so applications still have to authorize any action it influences.
Security claims are carefully limited
Collections and filters organize data but do not enforce complete authorization. Capability-gated retrieval is described as a research component with side-channel and recall limits. Hash-linked records and RVF witnesses can reveal tampering, but they do not encrypt stored memory. Deleting a live record also leaves copies in snapshots, branches, replicas, exports, or hosted memory unless an operator removes those separately.
Current issues reinforce the need for narrow adoption. Issue #825 reports a nondeterministic delta-index test that can hang and says the crate is temporarily excluded from CI tests. Issue #907 describes a graph connection pool that retains database objects and can reuse deleted storage paths. Issue #901 reports a panic when a router sorts a non-finite confidence value on its default path. These reports concern specific components, not every RuVector user, but they argue against enabling the whole catalog without component-level testing.
The decision
The last push was August 24, 2026, and recent issues and pull requests were active through that date. GitHub listed 296 open issues and pull requests combined. Release 0.2.40 was published on July 29. The project is moving quickly and documents its unfinished edges better than many younger systems.
Use RuVector if an embedded local memory store is the goal and its Node or Rust core fits your application. Keep the first deployment small. A team that needs distributed operations, one polished memory facade, or a clean dependency audit should choose a narrower alternative today. RuVector's most persuasive feature is the honest map of what works, which lets careful developers avoid the parts that are still research or assembly work.

