Standalone S3 & Vector Engine

Object Storage & Vector Search
In One 15MB Binary

Pranor Vault provides full AWS S3 API compatibility alongside native HNSW vector similarity search. High throughput, zero external dependencies, zero maintenance.

Quick Start View on GitHub
Standalone Install: docker run -p 8084:8084 vyuvaraj/pranor-vault:latest

Core Capabilities

Built for High-Performance Cloud & AI Applications

Why manage separate S3-compatible clusters and vector databases when you can run both in a single lightweight Go binary?

🪣

S3 API Compatibility

Compatible with standard AWS S3 SDKs, MinIO tools, and CLI commands. Supports Multipart uploads, Bucket Policies, and Presigned URLs.

🧠

Native HNSW Vector Index

Store, index, and query high-dimensional embeddings using Cosine, Euclidean, or Dot-product distances with millisecond latency.

Zero-Allocation Streaming

Optimized buffer reuse engine delivers 10Gbps+ read throughput with minimal memory footprint under concurrent access.

Comparison Matrix

Vault vs MinIO & Qdrant

See how Pranor Vault simplifies your infrastructure stack without sacrificing features.

FeatureMinIO + Vector DBPranor Vault
Single Binary Deployment (Requires multiple services) (Single 15MB binary)
AWS S3 API Support
Native Vector Search (HNSW) (Requires Qdrant/Pinecone) Built-in
Memory ConsumptionHigh (500MB+ per node)Ultra-Low (~25MB baseline)
Direct Vector-Object Correlation (Separate metadata DB) Direct linkage
Open Source (AGPL-3.0)

Code Examples

Use from Any Language or Framework

Pranor Vault works natively with Python, TypeScript/Node.js, Go, cURL, or directly in Pranor applications.

import boto3 import requests # 1. Standard AWS S3 SDK for object upload s3 = boto3.client('s3', endpoint_url='http://localhost:8084') s3.upload_file('report.pdf', 'documents', 'report.pdf') # 2. HNSW Vector Similarity Query via REST res = requests.post('http://localhost:8084/api/v1/vectors/search', json={ "collection": "doc-embeddings", "vector": [0.12, -0.44, 0.89, 0.05], "top_k": 5 }) print("Top match:", res.json()['results'][0]['key'])