XUtils

Xodus

Highly concurrent transactional schema-less and ACID-compliant embedded database.


Hello Worlds!

To start using Xodus, define dependencies:

<!-- in Maven project -->
<dependency>
    <groupId>org.jetbrains.xodus</groupId>
    <artifactId>xodus-openAPI</artifactId>
    <version>2.0.1</version>
</dependency>
// in Gradle project
dependencies {
    implementation("org.jetbrains.xodus:xodus-openAPI:2.0.1")
}

Read more about managing dependencies.

There are two different ways to deal with data, which results in two different API layers: Environments and Entity Stores.

Environments

Add dependency on org.jetbrains.xodus:xodus-environment:2.0.1.

try (Environment env = Environments.newInstance("/home/me/.myAppData")) {
    env.executeInTransaction(txn -> {
        final Store store = env.openStore("Messages", StoreConfig.WITHOUT_DUPLICATES, txn);
        store.put(txn, StringBinding.stringToEntry("Hello"), StringBinding.stringToEntry("World!"));
    });
}

Entity Stores

Add dependency on org.jetbrains.xodus:xodus-entity-store:2.0.1, org.jetbrains.xodus:xodus-environment:2.0.1 and org.jetbrains.xodus:xodus-vfs:2.0.1.

try (PersistentEntityStore entityStore = PersistentEntityStores.newInstance("/home/me/.myAppData")) {
    entityStore.executeInTransaction(txn -> {
        final Entity message = txn.newEntity("Message");
        message.setProperty("hello", "World!");
    });
}

Building from Source

Gradle is used to build, test, and publish. JDK 1.8 or higher is required. To build the project, run:

./gradlew build

To assemble JARs and skip running tests, run:

./gradlew assemble

Find out More


Articles

  • coming soon...