objectbox/objectbox-java

Database for Android and JVM - first and fast, lightweight on-device vector database

ObjectBox Java – 带向量搜索功能的设备内 NoSQL 数据库

是什么

ObjectBox‑Java 是 Java 和 Kotlin 应用程序(Android、桌面、服务器)的 轻量级设备内数据库。它直接存储普通对象(POJO),因此你无需编写 SQL。该库还包含一个 向量搜索引擎,可让你将高维嵌入(embeddings)与常规数据一起保存,并快速执行相似性查询——适用于 RAG、生成式 AI 或推荐功能。

为何你会需要它

特性 对你的意义
首个设备内向量数据库 本地存储嵌入,并在无需远程服务的情况下运行相似性搜索。
高性能 基准测试表明 CRUD 操作比 SQLite 或 Realm 更快,CPU、内存和电池消耗低——对移动或边缘设备至关重要。
面向对象的 API 定义一个 @Entity 类,获取一个 Box<T>,调用 put、get、remove。无需 SQL 字符串,编译时类型安全。
内置关系支持 一对多、多对多关系自动处理,简化复杂数据模型。
跨平台 支持 Android 和任意 JVM(Linux、macOS、Windows),并支持 ARM CPU。
同步与时间序列扩展(独立产品) 可选附加功能,用于设备间数据同步或存储时间序列数据。

如何使用(快速示例)

@Entity
public class Person {
    @Id long id;               // 自动生成的主键
    String firstName;
    String lastName;
}

BoxStore store = MyObjectBox.builder()
        .name("person-db")
        .build();
Box<Person> box = store.boxFor(Person.class);

Person p = new Person();
long id = box.put(p);          // 创建
Person loaded = box.get(id);   // 读取
loaded.lastName = "Smith";
box.put(loaded);               // 更新
box.remove(loaded);            // 删除

Kotlin 使用方式类似,使用相同的注解即可。

如何引入项目

  • Gradle – 添加 io.objectbox 插件(或使用版本目录),从 Maven Central 获取 ObjectBox 依赖。
  • Maven – 支持 JVM 项目;请参阅示例仓库中的 pom 文件。
  • 需要 Java 8+(或 Kotlin 1.7+),可在 Android 5.0+ 和现代桌面操作系统上运行。

更多学习资源

许可证

Apache 2.0(此仓库中的代码)。其他 ObjectBox 组件有各自的许可条款。


ObjectBox Java 是一个专注于本地数据存储和设备内向量搜索的真实软件项目,通过支持边缘侧嵌入相似性搜索,契合 AI/ML 前沿需求。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目