Metadata-Version: 2.4
Name: mangor
Version: 1.0.0
Summary: EzDB B-Class - Free & open source vector database for semantic search
Home-page: https://github.com/utpalraina/ezdb
Author: EzDB Team
Author-email: EzDB Team <hello@ezdb.io>
License: MIT
Project-URL: Homepage, https://github.com/utpalraina/ezdb
Project-URL: Documentation, https://github.com/utpalraina/ezdb#readme
Project-URL: Repository, https://github.com/utpalraina/ezdb
Project-URL: Bug Tracker, https://github.com/utpalraina/ezdb/issues
Keywords: vector database,semantic search,embeddings,AI,machine learning,similarity search
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Database
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24.0
Requires-Dist: hnswlib>=0.8.0
Provides-Extra: server
Requires-Dist: fastapi>=0.104.0; extra == "server"
Requires-Dist: uvicorn[standard]>=0.24.0; extra == "server"
Requires-Dist: pydantic>=2.0.0; extra == "server"
Requires-Dist: python-multipart>=0.0.6; extra == "server"
Provides-Extra: embeddings
Requires-Dist: sentence-transformers>=2.2.0; extra == "embeddings"
Provides-Extra: openai
Requires-Dist: openai>=1.0.0; extra == "openai"
Provides-Extra: cohere
Requires-Dist: cohere>=4.0.0; extra == "cohere"
Provides-Extra: huggingface
Requires-Dist: transformers>=4.30.0; extra == "huggingface"
Requires-Dist: torch>=2.0.0; extra == "huggingface"
Provides-Extra: all
Requires-Dist: fastapi>=0.104.0; extra == "all"
Requires-Dist: uvicorn[standard]>=0.24.0; extra == "all"
Requires-Dist: pydantic>=2.0.0; extra == "all"
Requires-Dist: python-multipart>=0.0.6; extra == "all"
Requires-Dist: sentence-transformers>=2.2.0; extra == "all"
Provides-Extra: full
Requires-Dist: fastapi>=0.104.0; extra == "full"
Requires-Dist: uvicorn[standard]>=0.24.0; extra == "full"
Requires-Dist: pydantic>=2.0.0; extra == "full"
Requires-Dist: python-multipart>=0.0.6; extra == "full"
Requires-Dist: sentence-transformers>=2.2.0; extra == "full"
Requires-Dist: openai>=1.0.0; extra == "full"
Requires-Dist: cohere>=4.0.0; extra == "full"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# EzDB B-Class (Basic) - Free & Open Source Vector Database

[![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://github.com/yourusername/ezdb)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![Status](https://img.shields.io/badge/status-stable-brightgreen.svg)](PRODUCT_TIERS.md)

EzDB is a lightweight, easy-to-use vector database built in Python for semantic search and AI applications.

> **📦 This is EzDB B-Class (Basic)** - The free, open-source version.
> For production features, see [EzDB Professional](PRODUCT_TIERS.md#-ezdb-professional-class) and [EzDB Enterprise](PRODUCT_TIERS.md#-ezdb-enterprise-class).

## ⚡ Quick Links

- 📖 **[Getting Started Guide](GETTING_STARTED.md)** - Learn the basics
- 🚀 **[API Documentation](API.md)** - Complete API reference
- 🐳 **[Docker Quick Start](DOCKER_QUICKSTART.md)** - Deploy in 60 seconds
- 📦 **[Docker Guide](DOCKER.md)** - Complete Docker documentation
- 🏗️ **[Product Tiers](PRODUCT_TIERS.md)** - B-Class, Professional, Enterprise
- 🚀 **[Deployment Guide](DEPLOYMENT.md)** - Production deployment

## Features

- **Vector Storage**: Store and search high-dimensional vectors efficiently
- **Multiple Metrics**: Cosine similarity, Euclidean distance, Dot product
- **Fast Indexing**: HNSW (Hierarchical Navigable Small World) for ANN search
- **Metadata Filtering**: Search with metadata constraints
- **Persistence**: Save/load databases to disk
- **Dual Mode**: Use as embedded library OR REST API server
- **REST API**: Full HTTP API with Python/JavaScript/Go clients
- **Collections**: Manage multiple isolated vector collections
- **Docker Ready**: Easy deployment with Docker and docker-compose

## Installation

```bash
pip install -r requirements.txt
```

## Quick Start

### Embedded Mode (Python Library)

```python
from ezdb import EzDB

# Create a new database
db = EzDB(dimension=384)

# Insert vectors with metadata
db.insert(
    vector=[0.1, 0.2, 0.3, ...],
    metadata={"text": "Hello world", "category": "greeting"}
)

# Search for similar vectors
results = db.search(query_vector=[0.1, 0.2, 0.3, ...], top_k=5)

# Save and load
db.save("my_database.ezdb")
db = EzDB.load("my_database.ezdb")
```

### REST API Server (Network Access)

**Start Server:**
```bash
pip install -r requirements-server.txt
python -m uvicorn ezdb.server.app:app --host 0.0.0.0 --port 8000
```

**Use Client:**
```python
from ezdb.client import EzDBClient

client = EzDBClient("http://localhost:8000")
client.insert(vector=[0.1, 0.2, 0.3, ...], metadata={"text": "Hello"})
results = client.search(vector=[0.1, 0.2, 0.3, ...], top_k=5)
```

**Interactive API Docs:** http://localhost:8000/docs

See [API.md](API.md) for complete API documentation.

## Architecture

- **Storage Engine**: Efficient in-memory vector storage with metadata
- **Indexing**: HNSW (Hierarchical Navigable Small World) for fast ANN search
- **Similarity**: Cosine, Euclidean, and Dot Product metrics
- **Persistence**: JSON-based serialization for easy inspection

## Use Cases

- Semantic search
- Recommendation systems
- RAG (Retrieval Augmented Generation)
- Document similarity
- Image search
- Anomaly detection
