{"name":"RuVector: Build Agent Memory with Rust and ONNX","description":"RuVector is a Rust-based vector search and persistent agent-memory toolkit, with ONNX embeddings for local semantic retrieval. It offers Rust, Node.js, and browser/WASM paths, plus separate graph, learning, and MCP components.","github":"https://github.com/ruvnet/RuVector","url":"https://osrepos.com/repo/ruvnet-ruvector","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/ruvnet-ruvector","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/ruvnet-ruvector.md","json":"https://osrepos.com/repo/ruvnet-ruvector.json","topics":["rust","ai","database","agent-memory","vector-database","graph-memory"],"keywords":["rust","ai","database","agent-memory","vector-database","graph-memory"],"stars":null,"summary":"RuVector is a Rust-based vector search and persistent agent-memory toolkit, with ONNX embeddings for local semantic retrieval. It offers Rust, Node.js, and browser/WASM paths, plus separate graph, learning, and MCP components.","content":"## Overview\n\nRuVector is a Rust-based toolkit for vector search, persistent agent memory, and local decisions. Its Node.js semantic-memory path uses ONNX embeddings with the `all-MiniLM-L6-v2` model, while Rust and browser/WASM packages provide other ways to use its retrieval components. It is aimed at applications that need to store context across sessions and retrieve it locally, rather than relying on a hosted vector service.\n\nThe repository is a broad monorepo, not a single database package: its separate components cover graph memory, feedback-driven learning, typed decisions, and MCP integration. Those capabilities require explicit integration; installing the root `ruvector` package does not activate the full platform.\n\n## Key Features\n\n- Persistent vector storage and similarity search, with Rust and Node.js interfaces.\n- Local semantic embeddings through ONNX, with external embedding providers also supported.\n- Metadata filtering, HNSW and flat indexes, and optional graph-based retrieval components.\n- Memory-related primitives for recording outcomes and adapting from explicit feedback; reads alone do not trigger learning.\n- Separate browser/WASM, Python, PostgreSQL, and RVF build or package surfaces.\n- An npm CLI and MCP server for accessing memory tools from agent workflows.\n\n## Use Cases\n\n- An agent or coding assistant that needs to retain project decisions across sessions can use the CLI or Node.js package with a local persistent store.\n- A Rust application that needs embedded vector search can build directly on `ruvector-core` and supply its own embeddings.\n- A team prototyping browser-based vector search can evaluate the separate WASM packages without deploying a database server.\n- Developers exploring graph-based or feedback-driven memory can combine the relevant crates and examples, while evaluating those research surfaces separately from the default search path.\n\n## Our Take\n\nRuVector is an actively maintained, unusually broad Rust memory toolkit, but its many components have different maturity levels and should be adopted individually rather than treated as one finished platform.\n\n**Good fit if:**\n- You want local, persistent vector retrieval for an agent and can work with Rust or Node.js and ONNX-based semantic embeddings.\n- You need to explore graph memory, browser/WASM, or MCP integrations through separate packages and crates.\n- You value an MIT-licensed project with regular commits and releases, and a contributor base that is not mostly dependent on one person.\n\n**Look elsewhere if:**\n- You need a single integrated package with every advertised memory and learning capability enabled by default.\n- Your deployment depends on complete production-ready replication, snapshot restoration, or unified persistent memory APIs; the README describes gaps in these areas.\n- You need a hosted service or turnkey database rather than embedding and operating components in your own application.\n\n## Project Health\n\n| Signal | Value |\n|---|---|\n| Status | **Active**: regular commits and releases |\n| Last commit | 2026-10-14 (5 days ago) |\n| Commits, last 90 days | 100+ |\n| Releases, last 12 months | 47 (latest ruvector-wasm-v2.3.1, 2026-10-06) |\n| Contributors | 22 (top contributor: 50% of commits) |\n| Issues closed, last 90 days | 9+ (typically closed in 2 days) |\n| Pull requests merged, last 90 days | 45 (typically merged in 1 day) |\n| Project age | 11 months |\n\nChecked on 2026-10-19 with the GitHub API.\n\n## Project Facts\n\n- Language: Rust\n- License: MIT\n- Stars: 4.6k\n- Forks: 613\n- Topics: ai, ai-ocr, attention-mechanism, gnn, gnn-model, gnns, graph, graph-neural-networks\n- Website: https://Cognitum.One/RuVector\n- Archived: no\n\n## What You Need\n\nDetected in the repository:\n\n- Node.js >=18.0.0 (from package.json)\n- Rust 1.77 or newer (from Cargo.toml)\n- A test suite and automated checks on GitHub Actions\n\n## Getting Started\n\nFor the Node.js CLI, install the package and inspect the available commands:\n\n```bash\nnpm install ruvector\nnpx ruvector info\n```\n\nSemantic commands download the embedding model on first use. See the [README](https://github.com/ruvnet/RuVector) for Rust, Python, MCP, and other setup paths.\n\n## License in Plain Words\n\n**MIT** (permissive).\n\n- Commercial use: yes\n- Modify and redistribute: yes\n- You must keep: the copyright and license notice\n- Share your changes: no\n\nA summary, not legal advice: the LICENSE file is what applies.\n\n## Alternatives\n\n- [memvid](https://osrepos.com/repo/olow304-memvid): Memvid packages content, indexes, and metadata in a portable file, while RuVector offers vector search and memory components across Rust, Node.js, and WASM.\n- [cortex-mem](https://osrepos.com/repo/sopaco-cortex-mem): Cortex Memory focuses on durable file-based agent memories with CLI, REST, and MCP access; RuVector centers on vector search with ONNX embeddings and additional components.\n- [OpenViking](https://osrepos.com/repo/volcengine-openviking): OpenViking organizes agent context in a browsable virtual filesystem with self-hosted or hosted options, rather than RuVector's Rust-based vector-search toolkit.\n\n| Project | Language | License | Stars | Status |\n|---|---|---|---|---|\n| **RuVector** | Rust | MIT | 4.6k | Active |\n| [memvid](https://osrepos.com/repo/olow304-memvid) | Rust | Apache-2.0 | 16.6k | Active |\n| [cortex-mem](https://osrepos.com/repo/sopaco-cortex-mem) | Rust | MIT | 311 | Active |\n| [OpenViking](https://osrepos.com/repo/volcengine-openviking) | Python | AGPL-3.0 | 39.2k | Active |\n\n## Considerations\n\nThe repository is active, with frequent commits and releases and prompt issue and pull-request handling. That activity is encouraging, but does not make every component equally mature; the README identifies research surfaces and incomplete features, including incomplete consolidation and persistence in the unified runtime memory manager, index rebuilds when opening persisted HNSW databases, and limitations in replication and snapshot restoration. The core workspace requires Rust 1.77 or newer, and the npm path requires Node.js 18 or newer. The default semantic path downloads its model on first use, so offline or regulated deployments need to prepare and pin it in advance. Review the repository's security guidance as well: metadata filters are not a complete authorization boundary, and embeddings should be treated as sensitive data.","metrics":{"detailViews":4,"githubClicks":2},"dates":{"published":null,"modified":"2026-10-19T19:02:28.000Z"}}