JetBrains/youtrackdb: YouTrackDB is a general-use object-oriented graph database with storage format native to handle graph relations. YouTrackDB supports Gremlin queries and ACID transactions. 路 GitHub

🚀 Check out this must-read post from Hacker News 📖

📂 **Category**:

💡 **What You’ll Learn**:

License official JetBrains project
Bluesky
Zulip
Medium
Reddit


Issue tracker | Getting started

Join our Zulip community!

If you are interested in YouTrackDB, consider joining our Zulip
community.
Tell us about exciting applications you are building, ask for help, or just chat with friends 😃

YouTrackDB is a general use object-oriented graph database.
YouTrackDB is being supported and developed by JetBrains and is used internally in production.

YouTrackDB’s key features are:

  1. Fast data processing: Links traversal is processed with O(1) complexity. There are no
    expensive run-time JOINs.
  2. Object-oriented API: This API implements rich graph and
    object-oriented data models. Fundamental concepts of
    inheritance and polymorphism are implemented on the database
    level.
  3. Snapshot isolation by default: All transactions run under snapshot isolation. Each
    transaction sees a stable snapshot of the database as of its start time, eliminating dirty
    reads, non-repeatable reads, and phantom reads.
  4. Implementation of TinkerPop API and Gremlin query language:
    You can use both Gremlin query language for your queries and TinkerPop API out of the box.
    Support of GQL with seamless integration with Gremlin is in progress.
    For maximum query performance, we suggest using YQL for initial
    data prefetching.
  5. YQL (YouTrackDB Query Language): A SQL-based query language
    with extensions for graph functionality. YQL uses intuitive dot notation for link traversal
    instead of JOINs, supports the powerful MATCH statement for graph
    pattern matching, and includes automatic index usage for query optimization.
  6. Scalable development workflow: YouTrackDB works in schema-less, schema-mixed, and schema-full
    modes.
  7. Strong security: A strong security profiling system based on user, role,
    and predicate security policies.
  8. Encryption of data at rest: Optionally encrypts all data stored on disk.

YouTrackDB can run on any platform without configuration and installation.

If you want to experiment with YouTrackDB, please check out our REPL console.

docker run -it youtrackdb/youtrackdb-console

To install YouTrackDB as an embedded database, add the following dependency to your Maven project:

<dependency>
  <groupId>io.youtrackdbgroupId>
  <artifactId>youtrackdb-embeddedartifactId>
  <version>0.5.0-SNAPSHOTversion>
dependency>

The youtrackdb-embedded artifact is a shaded uber-jar that relocates all third-party
dependencies (Guava, Jackson, Groovy, etc.) under com.jetbrains.youtrackdb.shade,
so they won’t conflict with versions used by your application.

You also need to add a YTDB snapshot repository to your Maven pom.xml file:

<repositories>
  <repository>
    <name>Central Portal Snapshotsname>
    <id>central-portal-snapshotsid>
    <url>https://central.sonatype.com/repository/maven-snapshots/url>
    <releases>
      <enabled>falseenabled>
    releases>
    <snapshots>
      <enabled>trueenabled>
    snapshots>
  repository>
repositories>

or in case of Gradle:

dependencies 💬

and

repositories {
    maven {
        url = uri("https://central.sonatype.com/repository/maven-snapshots/")
        mavenContent {
            snapshotsOnly()
        }
    }
}

If you want to work with YouTrackDB server, you can start it using the Docker image:

docker run -p 8182:8182 \
 -v $(pwd)/secrets:/opt/ytdb-server/secrets \
 -v $(pwd)/databases:/opt/ytdb-server/databases \
 -v $(pwd)/conf:/opt/ytdb-server/conf \
 -v $(pwd)/log:/opt/ytdb-server/log \
 youtrackdb/youtrackdb-server

and provide root password for the database in the secrets/root_password file.

YouTrackDB requires at least JDK 21.

To learn how to use YouTrackDB, see the Getting Started guide.

For more examples covering both server and embedded deployments, check out the
examples project.

YouTrackDB runs every non-trivial change through a structured development
workflow: research, design, plan review, track-by-track implementation, and
review. New contributors can learn to run it end to end in the development
workflow book, starting at
Chapter 1 — The workflow at a glance.

{💬|⚡|🔥} **What’s your take?**
Share your thoughts in the comments below!

#️⃣ **#JetBrainsyoutrackdb #YouTrackDB #generaluse #objectoriented #graph #database #storage #format #native #handle #graph #relations #YouTrackDB #supports #Gremlin #queries #ACID #transactions #GitHub**

🕒 **Posted on**: 1784005461

🌟 **Want more?** Click here for more info! 🌟

By

Leave a Reply

Your email address will not be published. Required fields are marked *