https://github.com/lizzy-0323/oasisdb
OasisDB: A minimal and lightweight vector database
https://github.com/lizzy-0323/oasisdb
golang llm machine-learning rag vector vector-database vector-search
Last synced: 2 months ago
JSON representation
OasisDB: A minimal and lightweight vector database
- Host: GitHub
- URL: https://github.com/lizzy-0323/oasisdb
- Owner: lizzy-0323
- License: apache-2.0
- Created: 2025-05-12T06:05:50.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-02T02:21:37.000Z (3 months ago)
- Last Synced: 2026-04-02T15:15:56.134Z (3 months ago)
- Topics: golang, llm, machine-learning, rag, vector, vector-database, vector-search
- Language: Go
- Homepage:
- Size: 1.02 MB
- Stars: 68
- Watchers: 4
- Forks: 13
- Open Issues: 13
-
Metadata Files:
- Readme: readme-CN.md
- License: LICENSE
Awesome Lists containing this project
README
# OasisDB
[](https://coveralls.io/github/lizzy-0323/oasisdb?branch=main)
[](https://opensource.org/licenses/Apache-2.0)
English | **简体中文**
## 🚀 什么是 OasisDB?
**OasisDB** 是一款以简洁性和易用性为核心的高性能向量数据库。与其他复杂的向量数据库不同,OasisDB 通过单进程部署和 RESTful API 接口提供高效的向量相似度检索功能。
### ✨ 核心特性
- **超轻量级**:**小于 20MB** 的体积
- **零依赖**:无需内部网络通信
- **易于部署**:简单的设置和配置,一键启动
- **初学者友好**:完美适合学习向量检索概念
### 🎯 专为初学者设计
该项目旨在帮助开发者轻松有效地学习向量检索。您可以在我们的[设计文档](docs/design-CN.md)中探索详细的设计思路和关键概念。
## ✨ 功能特点
### 🔍 **多种向量索引类型**
- **HNSW**(分层可导航小世界)- 快速近似搜索
- **IVFFLAT**(倒排文件与平面压缩)- 性能与精度的平衡
- **IVFPQ**(倒排文件与乘积量化)- 降低内存占用并加速距离计算
- **Flat** - 精确搜索,最高精度
- 更多索引类型适用于不同使用场景
### ⚡ **超轻量级架构**
- **单进程部署**,无需复杂配置
- **零内部网络通信** - 无需复杂的分布式设置
- **最小资源占用**,便于部署
### 🤖 **嵌入服务集成**
- **内置嵌入支持**,无缝生成向量
- 📖 更多详情请参阅[嵌入文档](docs/embedding.md)
### 🛠️ **开发者友好**
- **RESTful API** 便于 HTTP 集成
- **多语言 SDK**:Python, Go, etc(under development)
## 🏗️ 架构

## 🚀 快速开始
### 前置条件
- Go 1.22+
- CMake 3.22+
- Python 3.10+
- uv(可选,用于依赖管理)
### 从源码构建
```bash
make build
./bin/oasisdb
```
### 使用示例
您可以使用 HTTP 请求或 Python 客户端与 OasisDB 交互。以下示例使用 `uv` 安装依赖,并展示最简单的健康检查:
更多用法请参阅 [apidoc](docs/api.md),或查看示例脚本 [example.py](example.py)。
## 🤝 贡献指南
欢迎任何形式的贡献!在提交代码之前,请先通过 issue 讨论您的想法。
若要提交 PR,请确保通过以下步骤保证代码质量:
```bash
make test
make lint
```
## 📝 许可证
[Apache 2.0](LICENSE)