A fast and efficient key/value store or document database which can work as a drop-in replacement for DynamoDB or MongoDB.
Project description
GlowDB: A Vector Store with RPC API
GlowDB is a flexible and efficient vector store server that enables interaction with a variety of data through a WebSocket-based Remote Procedure Call (RPC) API. It supports storing, retrieving, scanning, and managing vector-based documents in a RocksDB-backed database.
Table of Contents
Features
- WebSocket RPC API: Communicate with the vector store server over WebSocket using JSON-RPC requests.
- Document Storage: Store, retrieve, and manage documents using vector embeddings.
- Custom Models: Support for custom document models with the
DocumentObject
class. - Async Support: Fully asynchronous API for efficient data processing.
- Retry and Timing Handlers: Includes decorators for retry mechanisms, timing measurement, and exception handling.
- Singleton Pattern: Ensures single instances of classes where needed.
- Flexible Configurations: Use decorators and functions to enhance the API as required.
Getting Started
Requirements
- Python 3.8 or higher
- Dependencies:
orjson
websockets
rocksdb
pydantic
typing-extensions
Installation
- Clone the repository:
git clone https://github.com/yourusername/glowdb.git cd glowdb