JetBrains/xodus

Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.

Java

1,260

3,165 commits

updated Jul 9, 2026

See the code

README

!Warning!

This project is entering its SUNSET stage as we embark on an exciting migration to our new YouTrackDB graph database. Stay tuned for upcoming announcements, detailed plans, and migration guidelines as the YTDB project unfolds.

official JetBrains project Maven Central Last Release License Pure Java + Kotlin Stack Overflow

JetBrains Xodus is a transactional schema-less embedded database that is written in Java and Kotlin. It was initially developed for JetBrains YouTrack, an issue tracking and project management tool. Xodus is also used in JetBrains Hub, the user management platform for JetBrains' team tools, and in some internal JetBrains projects.

  • Xodus is transactional and fully ACID-compliant.
  • Xodus is highly concurrent. Reads are completely non-blocking due to MVCC and true snapshot isolation.
  • Xodus is schema-less and agile. It does not require schema migrations or refactorings.
  • Xodus is embedded. It does not require installation or administration.
  • Xodus is written in pure Java and Kotlin.
  • Xodus is free and licensed under Apache 2.0.

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

database
db
embedded-database
entity-store
java
key-value
kotlin
log-structured
nosql
schema-less
snapshot-isolation
transactional
xodus
youtrack

JetBrains/xodus

Transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.

Java

1,260

3,165 commits

updated Jul 9, 2026

See the code

README

!Warning!

This project is entering its SUNSET stage as we embark on an exciting migration to our new YouTrackDB graph database. Stay tuned for upcoming announcements, detailed plans, and migration guidelines as the YTDB project unfolds.

official JetBrains project Maven Central Last Release License Pure Java + Kotlin Stack Overflow

JetBrains Xodus is a transactional schema-less embedded database that is written in Java and Kotlin. It was initially developed for JetBrains YouTrack, an issue tracking and project management tool. Xodus is also used in JetBrains Hub, the user management platform for JetBrains' team tools, and in some internal JetBrains projects.

  • Xodus is transactional and fully ACID-compliant.
  • Xodus is highly concurrent. Reads are completely non-blocking due to MVCC and true snapshot isolation.
  • Xodus is schema-less and agile. It does not require schema migrations or refactorings.
  • Xodus is embedded. It does not require installation or administration.
  • Xodus is written in pure Java and Kotlin.
  • Xodus is free and licensed under Apache 2.0.

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

database
db
embedded-database
entity-store
java
key-value
kotlin
log-structured
nosql
schema-less
snapshot-isolation
transactional
xodus
youtrack

Project health

Overall

4.1/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Significant stargazers

Florin Pățan

445 followers · starred Jul 2016

Yuriy Artamonov

219 followers · starred May 2019

Songday

6 followers · starred Mar 2020

CzBiX

204 followers · starred Feb 2022