Skip to content

Latest commit

 

History

History
96 lines (71 loc) · 2.84 KB

File metadata and controls

96 lines (71 loc) · 2.84 KB

Rust ↔ Python Parity Phased Implementation Plan

This plan tracks feature parity work between mem0-rust and the Python original.

Current Rust Coverage

  • Core memory management
  • Embedding providers: Mock, OpenAI, Ollama, HuggingFace
  • Vector stores: in-memory, Qdrant, PostgreSQL, Redis
  • LLM providers: OpenAI, Ollama, Anthropic
  • Reranker: Cohere

Missing Compared to Python

  • 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

Phases

Phase 1 — Python FFI Foundation (PyO3 bindings)

Atomic tasks:

  1. Add pyo3 feature-gated crate layout and Python module bootstrap.
  2. Bind core Memory constructors and lifecycle methods.
  3. Bind add/search/get/update/delete/reset APIs with Python-friendly types.
  4. Add packaging (maturin/wheel metadata) and CI build checks.

Phase 2 — Graph Memory Support

Atomic tasks:

  1. Define graph memory traits and data model.
  2. Implement graph extraction/inference flow.
  3. Integrate graph-aware retrieval and merging rules.
  4. Add graph memory tests and parity fixtures.

Phase 3 — Additional Vector Stores

Scope: FAISS, Chroma, Pinecone, Weaviate.

Atomic tasks:

  1. Add shared adapter contracts and conformance tests.
  2. Implement FAISS store.
  3. Implement Chroma store.
  4. Implement Pinecone store.
  5. Implement Weaviate store.

Phase 4 — Enhanced LLM & Embedding Providers

Scope: AWS Bedrock, Azure OpenAI, Gemini.

Atomic tasks:

  1. Add provider abstraction extensions (auth, endpoints, retries).
  2. Implement AWS Bedrock support.
  3. Implement Azure OpenAI support.
  4. Implement Gemini support.
  5. Add provider-specific integration tests.

Phase 5 — Client/Server & Proxy Mode

Atomic tasks:

  1. Introduce HTTP API surface for memory operations.
  2. Implement Rust client SDK for remote server mode.
  3. Add proxy mode routing and request signing options.
  4. Add e2e tests for local/server parity.

Phase 6 — Advanced Features & Polish

Atomic tasks:

  1. Add CLI for local workflows and admin operations.
  2. Add performance benchmarks and profiling-guided tuning.
  3. Improve observability (metrics/tracing).
  4. Finalize docs and migration guides.

Delivery Workflow (Per Phase)

  1. Break the phase into atomic tasks.
  2. Implement one task.
  3. Commit immediately for that task.
  4. Push to a dedicated branch named for that phase (e.g. phase_1, phase_2).
  5. Open a pull request from the phase branch.
  6. Repeat for next phase.

Branch Safety Rules

  • 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