The Flower Garden
Six libraries.
One philosophy.
Grimvane's owned data layer. Vector memory, structured storage, graphs, search, caching, encryption. Each library is independent, pluggable, and zero-opinion. Import it and call functions.
The philosophy.
Library, not service.
No server. No ports. No processes. Import it and call functions.
Zero opinions.
A flower stores data and retrieves it. It never knows what that data represents.
Pluggable everything.
Backends, embedders, serializers. Swap any layer without changing your code.
Additive complexity.
The simplest usage needs only Python. GPU, databases, encryption are opt-in.
Catalog
The flowers.
Store text as vectors, search by meaning. Pluggable embedders, pluggable backends, optional lifecycle decay. The foundation of retrieval at Grimvane.
from camellia import MemoryStore Relational data with pluggable backends. Same philosophy as Camellia for structured data. Schema via dataclasses, not ORM magic.
from dahlia import Store Nodes, edges, traversal. Typed relationships with metadata. Neighbors, shortest path, subgraph extraction.
from wisteria import Graph Full-text search and indexing. BM25 ranking, faceted queries, highlighting. The keyword complement to Camellia's semantic search.
from aster import Index Hot, warm, cold. Automatic promotion on access, eviction by TTL or LRU. Layered caching without external dependencies.
from lotus import Cache Data at rest encrypted. AES-256-GCM, key-gated access, audit logging. For when the data matters enough to lock down.
from thistle import Vault