Installation

Build Configuration

You can find the EclipseStore libraries in the Maven Central repository.

Maven [pom.xml]
<dependency>
	<groupId>org.eclipse.store</groupId>
	<artifactId>storage-embedded</artifactId>
	<version>4.0.1</version>
</dependency>
Gradle (Groovy) [build.gradle]
dependencies {
	implementation 'org.eclipse.store:storage-embedded:4.0.1'
}
Gradle (Kotlin) [build.gradle.kts]
dependencies {
	implementation("org.eclipse.store:storage-embedded:4.0.1")
}
Scala SBT [build.sbt]
libraryDependencies += "org.eclipse.store" % "storage-embedded" % "4.0.1"
Apache Ivy [ivy.xml]
<dependencies>
	<dependency org="org.eclipse.store"
		name="storage-embedded"
		rev="4.0.1" />
</dependencies>
Apache Buildr [Buildfile]
define 'my-app' do
	compile.with 'org.eclipse.store:storage-embedded:4.0.1'
end
Bazel [WORKSPACE]
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "2.8"
RULES_JVM_EXTERNAL_SHA = "79c9850690d7614ecdb72d68394f994fef7534b292c4867ce5e7dec0aa7bdfad"

http_archive(
	name = "rules_jvm_external",
	strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
	sha256 = RULES_JVM_EXTERNAL_SHA,
	url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
	artifacts = [
		"org.eclipse.store:storage-embedded:4.0.1"
	],
)
Bazel [BUILD]
maven_jar(
	name = "eclipsestore",
	artifact = "org.eclipse.store:storage-embedded:4.0.1"
)

Modules

These are the different modules that make up EclipseStore.

Eclipse Serializer Modules

ArtifactId Description

afs

Abstract file system (AFS) layer.

base

Collection of common utilities. Math, IO, Exceptions, Threads, String operations, and so on.

codegen

Code generation framework for entity types and other generated artifacts.

communication

Communication layer for network-based data transfer and messaging.

configuration

General-purpose configuration layer.

configuration-hocon

Hocon extension for the configuration layer, which supports hocon, json and ini files.

configuration-yaml

Yaml extension for the configuration layer.

nativememory

Native (off-heap) memory management utilities.

persistence

Base persistence framework providing the foundation for object graph serialization and deserialization.

persistence-binary

Extension of the persistence base framework with a concrete implementation of the persistent form as binary data. This persistent form is superior to all text-based formats in storage and performance needs, making it the preferred method for storage and network serialization.

persistence-binary-android

Android-specific extension of the binary persistence layer.

persistence-binary-jdk8

JDK 8+ specific extension of the binary persistence layer with type handlers for modern JDK types.

serializer

High-level serializer API providing a convenient entry point for object serialization.

EclipseStore Modules

ArtifactId Description

afs-aws

Common AWS file system abstraction base module.

afs-aws-dynamodb

File system implementation for AWS DynamoDB.

afs-aws-s3

File system implementation for AWS S3.

afs-azure-storage

File system implementation for Azure Cloud (Azure Storage).

afs-blobstore

Base for all blob store file system implementations.

afs-googlecloud-firestore

File system implementation for Google Cloud Firestore.

afs-kafka

File system implementation for Apache Kafka.

afs-nio

File system implementation for the non-blocking IO implementation (java.nio.file) of the JDK.

afs-oraclecloud-objectstorage

File system implementation for Oracle Cloud Services (Object Storage).

afs-redis

File system implementation for Redis.

afs-sql

File system implementation for SQL databases.

cache

JSR-107 (JCache) implementation for EclipseStore.

cache-hibernate

Hibernate cache region factory for EclipseStore.

gigamap

The GigaMap is a specialized collection aimed at optimizing performance and memory usage in EclipseStore. It utilizes off-heap bitmap indexing to facilitate lightning-fast searches and lazy loading of objects, eliminating the need for manual reference management.

gigamap-jvector

GigaMap JVector integration for vector search capabilities.

gigamap-lucene

A specialized index implementation which connects to a Lucene directory.

integrations-spring-boot3

Spring Boot 3 integration for EclipseStore.

integrations-spring-boot3-console

Spring Boot 3 console with embedded REST UI for EclipseStore.

integrations-cdi4

CDI 4 (Jakarta) extension for EclipseStore.

storage

Basic framework to manage a graph of Java data persisted as binary data as a database. Can be used both to implement an embedded database solution (in the same process as the Java application) and a standalone or server-mode database solution (in a separate process). Other forms of persistence than binary data are deliberately not supported because they would not bring any noteworthy advantages but many disadvantages for the task.

storage-embedded

Top-level framework for use in a Java application that adds an embedded database solution to its object graphs. Can be used directly in the program code of a Java application to comfortably and efficiently persist its data.

storage-embedded-configuration

Layer with support for external configuration files (XML, INI) and convenience functionality to create foundations for the embedded storage.

storage-embedded-tools-storage-converter

Tool for converting storage data between different formats.

storage-embedded-tools-storage-migrator

Tool for migrating storage data using OpenRewrite recipes.

storage-restadapter

Adapter for low-level storage data externalization. Used by the REST service to adapt to a EclipseStore Storage.

storage-restclient

Abstract REST client interface, which serves as a Java wrapper for the REST API.

storage-restclient-app

Executable client app with web user interface, which connects to a REST service.

storage-restclient-jersey

REST client implementation which utilizes Jersey as a webservice framework.

storage-restservice

Abstract REST service interface, which uses the REST adapter to access low level storage data.

storage-restservice-javalin

REST service implementation which utilizes Javalin and provides REST endpoints.

storage-restservice-sparkjava (deprecated)

REST service implementation which utilizes SparkJava and provides REST endpoints. (Deprecated, use storage-restservice-javalin instead.)

storage-restservice-springboot

REST service implementation for Spring Boot which provides REST endpoints.