YouTrackDB 是一款通用型面向对象图形数据库。
YouTrackDB is a general-use object-oriented graph database

原始链接: https://github.com/JetBrains/youtrackdb

YouTrackDB 是由 JetBrains 开发并使用的一款高性能、面向对象的图数据库。它专为效率和可扩展性而设计,具备 O(1) 链接遍历能力,消除了昂贵的运行时 JOIN 操作,并支持无模式、混合模式和全模式配置。 **主要特性包括:** * **数据完整性:** 默认采用快照隔离,可防止常见的并发问题。 * **查询灵活性:** 原生支持 TinkerPop API 和 Gremlin,同时提供 YQL——这是一种基于 SQL 的语言,具有直观的点表示法和强大的图模式匹配功能。 * **安全性与多功能性:** 提供基于角色的安全机制和可选的磁盘加密。它跨平台运行,无需复杂的安装。 **入门指南:** YouTrackDB 需要 JDK 21,并提供嵌入式和服务器端两种部署方式。开发者可以通过 REPL 控制台立即进行测试,或使用 Maven 或 Gradle 将其集成到项目中。对于服务器部署,官方提供 Docker 镜像。 欢迎在 Zulip 上与社区互动,分享应用案例或寻求帮助。详细文档(包括“入门”指南、示例以及深入的开发工作流程手册)可帮助新贡献者和用户掌握该系统。

Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 YouTrackDB 是一款通用面向对象图形数据库 (github.com/jetbrains) 11 个积分,由 gjvc 在 1 小时前发布 | 隐藏 | 过往 | 收藏 | 讨论 | 帮助 考虑申请 YC 2026 年秋季批次!申请截止日期为 7 月 27 日。 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

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.youtrackdb</groupId>
  <artifactId>youtrackdb-embedded</artifactId>
  <version>0.5.0-SNAPSHOT</version>
</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 Snapshots</name>
    <id>central-portal-snapshots</id>
    <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    <releases>
      <enabled>false</enabled>
    </releases>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </repository>
</repositories>

or in case of Gradle:

dependencies {
    implementation 'io.youtrackdb:youtrackdb-embedded:0.5.0-SNAPSHOT'
}

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.

联系我们 contact @ memedata.com