English | 简体中文
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.
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.
- HNSW (Hierarchical Navigable Small World) - Fast approximate search
- IVFFLAT (Inverted File with Flat compression) - Balanced performance and accuracy
- Flat - Exact search with maximum accuracy
- And more index types for different use cases
- Standalone deployment as a single process
- Zero internal network communication - no complex distributed setup
- Minimal resource footprint for easy deployment
- Built-in embedding support for seamless vector generation
- 📖 Learn more in our Embedding Documentation
- RESTful API for easy HTTP integration
- Multi-language SDKs: Python, Go, etc(under development)
- Go 1.22+
- CMake 3.22+
- Python 3.10+
- uv(optional for package dependencies)
make build
./bin/oasisdb
# or you can use the script to start oasisdb
chmod +x ./scripts/start.sh
./scripts/start.shYou 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.
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 installedThe contributors of this project are listed below, thank you all for your contributions!
OasisDB is licensed under Apache 2.0 License
