R2D1 / 模块化 JAVA 持久化

面向 Java 的文档存储与索引查询。

选择一个 DocumentStore 保存完整文档,再选择一个 IndexStore 进行索引查找。无论使用哪种后端或集成方式,R2D1 都保持相同的集合 API。

Latest stable: 1.8.0

R2D1一个集合 API
实现版本

选择实现版本。

可以使用 Maven Central 上的 Java 库,也可以使用面向 Node.js 和 Cloudflare Workers 的 TypeScript 包。

JAVA / MAVEN CENTRAL

Java

提供 Cloudflare R2 与 D1、本地存储、JDBC 和框架集成的 Java 模块。

Java 文档 →
TYPESCRIPT / NPM

TypeScript

面向 Node.js 和 Cloudflare Workers 的 TypeScript 包,使用与 Java 兼容的存储契约。

TypeScript 概览 →
支持的后端

先选择两个部分。

R2D1 将一个 DocumentStore 与一个 IndexStore 组合起来。分别从两列选择后端,按照设置指南配置,然后使用共享的集合 API。

文档存储

完整文档

负责权威序列化内容、按标识读取以及文档列表。

R2

CLOUDFLARE

通过异步 AWS SDK 客户端使用 Cloudflare R2。

R2 设置 →
索引存储

索引查找

负责过滤和排序所需的文档标识与显式索引字段。

D1

CLOUDFLARE

通过 Java 异步 REST 客户端使用 Cloudflare D1。

D1 设置 →

JDBC

H2 / HSQLDB / SQLITE

由应用拥有的 DataSource 和 JDBC 执行边界。

JDBC 设置 →
通用 API

配置一次,使用相同的 API。

配置两个后端后,所有组合都使用相同的注解、集合生命周期、写入方法和索引查询构建器。

@Document("users")
record User(@Id String id, @Index String country, @Index long score) {}

R2D1 database = R2D1.builder()
    .collectionFactory(new PersistenceCollectionFactory(
        documentStore, indexStore, documentCodec, indexStore::initialize))
    .build();

R2D1Collection<User> users = database.collection(User.class);
users.put(new User("user-123", "NZ", 42));

Page<User> page = users.query()
    .where("country").eq("NZ")
    .sortBy("score", SortDirection.DESC)
    .limit(20)
    .fetch();

完整的设置、适配器选择和生命周期规则请参阅 开始使用.

MODULES & INTEGRATIONS

模块与框架集成。

R2D1 1.8.0 将包含 Quarkus 扩展,以及通用 API、存储适配器和 Micronaut、Spring Boot 集成。

CORE + CLOUDFLARE

R2D1

dev.nexcraft:r2d1

通用集合 API,以及 R2 DocumentStore 和 D1 IndexStore 适配器。

模块设置 →
INDEX STORE

R2D1-JDBC

dev.nexcraft:r2d1-jdbc

通过应用拥有的 DataSource 支持 H2、HSQLDB 和本地 SQLite 索引。

JDBC 设置 →
DOCUMENT STORE

R2D1-FILESYSTEM

dev.nexcraft:r2d1-filesystem

具有原子替换和显式 executor 所有权的规范本地文档文件。

Filesystem 设置 →
FRAMEWORK INTEGRATION

R2D1-MICRONAUT

dev.nexcraft:r2d1-micronaut

围绕相同框架无关集合 API 的 Micronaut 5 bean 配置。

Micronaut 设置 →
FRAMEWORK INTEGRATION

R2D1-SPRING-BOOT-STARTER

dev.nexcraft:r2d1-spring-boot-starter

已发布到 Maven Central 的 Spring Boot 4 starter 及独立 auto-configuration。

Spring Boot 设置 →
FRAMEWORK INTEGRATION

R2D1-QUARKUS

dev.nexcraft:r2d1-quarkus

Quarkus 3.39.5 扩展,提供 CDI 配置和应用资源管理,包含于 R2D1 1.8.0。

Quarkus 设置 →

选择后端,然后使用一个 API。

设置一个文档存储和一个索引存储,定义元数据,然后打开集合。

阅读开始使用