Home
Softono
oasisdb

oasisdb

Open source Apache-2.0 Go
98
Stars
16
Forks
10
Issues
6
Watchers
2 months
Last Commit

About oasisdb

OasisDB: A minimal and lightweight vector database

Platforms

Web Self-hosted

Languages

Go

Links

OasisDB

Coverage Status License

Build

English | ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿš€ What is OasisDB?

OasisDB is a high-performance vector database designed for simplicity and ease of use. Unlike other complex and heavy vector databases, OasisDB provides efficient vector similarity search through both standalone deployment and RESTful API interfaces.

๐ŸŽฏ Perfect for Beginners

This project was created to help developers learn vector search easily and effectively. You can explore detailed design ideas and key concepts in our Design Documentation.

โœจ Features

๐Ÿ” Multiple Vector Index Types

  • HNSW (Hierarchical Navigable Small World) - Fast approximate search
  • IVFFLAT (Inverted File with Flat compression) - Balanced performance and accuracy
  • IVFPQ (Inverted File with Product Quantization) - Reduced memory usage and faster distance computation
  • Flat - Exact search with maximum accuracy
  • And more index types for different use cases

โšก Ultra-Lightweight Architecture

  • Standalone deployment as a single process
  • Zero internal network communication - no complex distributed setup
  • Minimal resource footprint for easy deployment

๐Ÿค– Embedding Service Integration

๐Ÿ› ๏ธ Developer-Friendly

  • RESTful API for easy HTTP integration
  • Multi-language SDKs: Python, Go, etc(under development)

๐Ÿ—๏ธ Architecture

Architecture

๐Ÿš€ Quick Start

Prerequisites

  • Go 1.22+
  • CMake 3.22+
  • Python 3.10+
  • uv(optional for package dependencies)

Build from source

make build
./bin/oasisdb

# or you can use the script to start oasisdb
chmod +x ./scripts/start.sh
./scripts/start.sh

Usage

You can use HTTP client to send request to oasisdb, and we recommend uv to install Python dependencies.

from client import OasisDBClient
client = OasisDBClient()
client.health_check()

For more usage, please see API Documentation, you can also use example.py to see how to use it. And now we also provide Go client SDK, you can see the example in example.go.

๐Ÿค Contribution

I welcome any contributions to this project. Before contributing, please open an issue to discuss the changes you want to make.

If you want to start a PR for code changes, please follow the steps below to ensure the code quality:

make test
make lint # Ensure golangci-lint is installed

The contributors of this project are listed below, thank you all for your contributions!

contributors

๐Ÿ“ License

OasisDB is licensed under Apache 2.0 License