Skip to content

Releases: y3zai/memio

v0.3.1

03 Apr 15:46
80123ea

Choose a tag to compare

What's Changed

  • Bump version to 0.3.1

Full Changelog: v0.3.0...v0.3.1

v0.3.0

31 Mar 02:24
f7d4f45

Choose a tag to compare

What's New

REST API Server

memio now includes an optional HTTP server so any language (JavaScript, TypeScript, Go, etc.) can use memio over HTTP.

pip install memio[server]
memio-server
# Open http://localhost:8080/docs for interactive API docs
  • 28 versioned endpoints under /v1 mirroring all 4 store protocols (facts, history, documents, graph)
  • YAML config with ${ENV_VAR} interpolation
  • Optional Bearer token authentication
  • Typed provider factories for all 6 providers
  • Dockerfile for containerized deployment
  • memio-server CLI entry point

Core Improvements

  • NotFoundError — new exception for missing resources, maps to HTTP 404 instead of generic provider errors
  • Updated Mem0, Letta, Chroma, and Qdrant adapters to raise NotFoundError on missing resources
  • Added __version__ to the memio package

Full Changelog

v0.2.1...v0.3.0

v0.2.1

30 Mar 21:05

Choose a tag to compare

What's Changed

Scoping & data isolation

  • HistoryStore.add() now accepts user_id to establish session ownership, enabling correct scoping for get_all/delete_all across Zep and Letta adapters
  • Zep search() derives owner from thread metadata on cache miss for cross-restart correctness
  • LettaFactAdapter raises NotSupportedError for user_id/agent_id-scoped get_all, search, and delete_all instead of silently ignoring scope
  • SupermemoryFactAdapter caches fact_id → container_tag (LRU-bounded) so update/delete target the correct scope

Performance

  • ChromaDocumentAdapter wraps all sync chromadb calls in asyncio.to_thread() to avoid blocking the event loop

CI

  • Added GitHub Actions CI workflow running pytest on Python 3.10 and 3.12

Docs

  • All history examples updated to show user_id parameter
  • Letta fact docs clarified with scoping limitation section
  • Zep docs corrected to use user_id consistently

v0.2.0

30 Mar 03:27

Choose a tag to compare

What's New

New Providers

  • Letta — FactStore, HistoryStore, and DocumentStore adapters supporting Letta Cloud and self-hosted deployments (pip install memio[letta])
  • Qdrant — DocumentStore adapter with built-in fastembed for automatic embeddings; supports in-memory, on-disk, and Qdrant Cloud (pip install memio[qdrant])
  • Supermemory — FactStore and DocumentStore adapters for the Supermemory cloud API (pip install memio[supermemory])

Fixes

  • Mem0 adapter updated for mem0ai v1.0.8 SDK breaking changes:
    • Uses AsyncMemoryClient for cloud API, AsyncMemory for local
    • add() now polls until the memory is fully processed, so callers always receive a usable Fact with a real ID
    • Handles v2 filters API for search/get_all and text= parameter for update
  • Supermemory datetime parsing now handles RFC 3339 Z suffix correctly

Docs & Tests

  • Full documentation, API reference pages, and MkDocs nav entries for all three new providers
  • README and quickstart updated with all six supported providers
  • 168 tests total (150 unit + 18 integration), all passing

Full Changelog: v0.1.2...v0.2.0

v0.1.2

27 Mar 18:14

Choose a tag to compare

Improvements

  • Consistent CRUD method ordering across all protocols (add → get → get_all → search → update → delete → delete_all)
  • Added module docstring with known quirks to Mem0 fact adapter
  • Handle None return from Mem0 client.get with clear error
  • Removed unreachable dict fallback in Zep history adapter
  • Added PyPI and docs badges to README

v0.1.1

27 Mar 04:36

Choose a tag to compare

Fix: add project description (README) to PyPI listing.

v0.1.0

27 Mar 04:33

Choose a tag to compare

v0.1.0 — Initial Release

Unified memory gateway for AI agents. One interface, multiple memory providers.

Highlights

  • Protocol-based architecture — four memory store protocols (FactStore, HistoryStore, DocumentStore, GraphStore) using Python's @runtime_checkable Protocol
  • Three providers — Mem0, Zep, and Chroma supported out of the box
  • Composable — mix and match providers in a single Memio client
  • Async-first — all operations use async/await
  • Zero production dependencies — install only the providers you need

Providers

Store Mem0 Zep Chroma
FactStore -
HistoryStore - -
DocumentStore - -
GraphStore -

Install

pip install memio              # core
pip install memio[mem0]        # + Mem0 provider
pip install memio[zep]         # + Zep provider
pip install memio[chroma]      # + Chroma provider
pip install memio[all]         # all providers

Quick Example

from memio import Memio, Message
from memio.providers.mem0 import Mem0FactAdapter
from memio.providers.zep import ZepHistoryAdapter
from memio.providers.chroma import ChromaDocumentAdapter
import chromadb

client = Memio(
    facts=Mem0FactAdapter(api_key="..."),
    history=ZepHistoryAdapter(api_key="..."),
    documents=ChromaDocumentAdapter(
        client=chromadb.EphemeralClient(),
        collection_name="my-docs",
    ),
)

fact = await client.facts.add(content="likes coffee", user_id="alice")
results = await client.facts.search(query="coffee", user_id="alice")

Documentation

Full documentation at y3zai.github.io/memio

License

MIT