EzDB B-Class - Free & open source vector database for semantic search
Project description
EzDB B-Class (Basic) - Free & Open Source Vector Database
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 and EzDB Enterprise.
⚡ Quick Links
- 📖 Getting Started Guide - Learn the basics
- 🚀 API Documentation - Complete API reference
- 🐳 Docker Quick Start - Deploy in 60 seconds
- 📦 Docker Guide - Complete Docker documentation
- 🏗️ Product Tiers - B-Class, Professional, Enterprise
- 🚀 Deployment Guide - 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
pip install -r requirements.txt
Quick Start
Embedded Mode (Python Library)
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:
pip install -r requirements-server.txt
python -m uvicorn ezdb.server.app:app --host 0.0.0.0 --port 8000
Use Client:
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 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezdb_utpal_raina-1.0.0.tar.gz.
File metadata
- Download URL: ezdb_utpal_raina-1.0.0.tar.gz
- Upload date:
- Size: 131.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdcf4ec8928dceccb95a5897014bad172d35675fd543013f3cf949678180f005
|
|
| MD5 |
909a201a191a6671d44ebe22bf280a12
|
|
| BLAKE2b-256 |
7452a629033bd1b717c9aa1dee9c385b26a175d6239f5522958f265441f5c7e9
|
File details
Details for the file ezdb_utpal_raina-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ezdb_utpal_raina-1.0.0-py3-none-any.whl
- Upload date:
- Size: 137.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd8cda8b2c7c258a58f333c5450ac3b7f4077d72c9c496947923a374b3fb5998
|
|
| MD5 |
e0762cf536305f4b2136fdea465ba4cb
|
|
| BLAKE2b-256 |
c905f88cb329f071084f111963c8867baf4e1cc745963f92b54b5fe464a38790
|