This plan tracks feature parity work between mem0-rust and the Python original.
- Core memory management
- Embedding providers: Mock, OpenAI, Ollama, HuggingFace
- Vector stores: in-memory, Qdrant, PostgreSQL, Redis
- LLM providers: OpenAI, Ollama, Anthropic
- Reranker: Cohere
- Graph memory support
- Client/Server mode and proxy support
- Additional vector stores (Azure AI Search, Chroma, FAISS, Milvus, MongoDB, Pinecone, Weaviate)
- Additional LLM providers (AWS Bedrock, Azure OpenAI, Gemini, Groq)
- More embedding providers
- Python FFI bindings
- CLI tool
- Advanced quality/performance features
Atomic tasks:
- Add
pyo3feature-gated crate layout and Python module bootstrap. - Bind core
Memoryconstructors and lifecycle methods. - Bind
add/search/get/update/delete/resetAPIs with Python-friendly types. - Add packaging (
maturin/wheel metadata) and CI build checks.
Atomic tasks:
- Define graph memory traits and data model.
- Implement graph extraction/inference flow.
- Integrate graph-aware retrieval and merging rules.
- Add graph memory tests and parity fixtures.
Scope: FAISS, Chroma, Pinecone, Weaviate.
Atomic tasks:
- Add shared adapter contracts and conformance tests.
- Implement FAISS store.
- Implement Chroma store.
- Implement Pinecone store.
- Implement Weaviate store.
Scope: AWS Bedrock, Azure OpenAI, Gemini.
Atomic tasks:
- Add provider abstraction extensions (auth, endpoints, retries).
- Implement AWS Bedrock support.
- Implement Azure OpenAI support.
- Implement Gemini support.
- Add provider-specific integration tests.
Atomic tasks:
- Introduce HTTP API surface for memory operations.
- Implement Rust client SDK for remote server mode.
- Add proxy mode routing and request signing options.
- Add e2e tests for local/server parity.
Atomic tasks:
- Add CLI for local workflows and admin operations.
- Add performance benchmarks and profiling-guided tuning.
- Improve observability (metrics/tracing).
- Finalize docs and migration guides.
- Break the phase into atomic tasks.
- Implement one task.
- Commit immediately for that task.
- Push to a dedicated branch named for that phase (e.g.
phase_1,phase_2). - Open a pull request from the phase branch.
- Repeat for next phase.
- Never push directly to
main. - Never merge work directly in local automation without PR review.
- Use Git identity:
- Name:
YASSERRMD - Email:
arafath.yasser@gmail.com
- Name: