JetBrains/youtrackdb

GitHub: JetBrains/youtrackdb

JetBrains 开发的通用型面向对象图数据库,支持 Gremlin 与 YQL 查询语言、ACID 事务和原生图关系遍历。

Stars: 362 | Forks: 14

## YouTrackDB [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![官方 JetBrains 项目](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
[![Bluesky](https://img.shields.io/badge/Bluesky-0285FF?style=for-the-badge&logo=Bluesky&logoColor=white)](https://bsky.app/profile/youtrackdb.io) [![Zulip](https://img.shields.io/badge/Zulip-50ADFF?style=for-the-badge&logo=Zulip&logoColor=white)](https://youtrackdb.zulipchat.com/) [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/@youtrackdb) [![Reddit](https://img.shields.io/badge/Reddit-%23FF4500.svg?style=for-the-badge&logo=Reddit&logoColor=white)](https://www.reddit.com/r/youtrackdb/)
[问题追踪器](https://youtrack.jetbrains.com/issues/YTDB) | [入门指南](docs/getting-started.md) ### 什么是 YouTrackDB? YouTrackDB 是一款**通用型**面向对象的图数据库。 YouTrackDB 由 JetBrains 提供支持和开发,并在内部用于生产环境。 YouTrackDB 的主要特性包括: 1. **快速的数据处理**:链接遍历以 O(1) 的复杂度进行处理。没有昂贵的运行时 JOIN 操作。 2. **[面向对象的 API](docs/object-oriented.md)**:该 API 实现了丰富的图和面向对象的数据模型。[继承和多态](docs/yql/YQL-Create-Class.md)的基本概念在数据库层面得到了实现。 3. **默认快照隔离**:所有事务都在快照隔离下运行。每个事务都能看到其开始时数据库的稳定快照,从而消除了脏读、不可重复读和幻读。 4. **实现 TinkerPop API 和 [Gremlin 查询语言](https://tinkerpop.apache.org/)**:你可以开箱即用地使用 Gremlin 查询语言进行查询,也可以使用 TinkerPop API。支持 `GQL` 以及与 `Gremlin` 的无缝集成正在[开发中](https://youtrackdb.zulipchat.com/#narrow/channel/511446-dev/topic/GQL.20.20implementation/with/567918479)。为了获得最大的查询性能,我们建议使用 [YQL](docs/yql/YQL-Introduction.md) 进行初始数据预取。 5. **[YQL](docs/yql/YQL-Introduction.md) (YouTrackDB 查询语言)**:一种基于 SQL 的查询语言,带有图功能的扩展。YQL 使用直观的点表示法进行链接遍历,而不是使用 JOIN,支持强大的 [MATCH 语句](docs/yql/YQL-Match.md)进行图模式匹配,并包含用于查询优化的自动索引功能。 6. **可扩展的开发工作流**:YouTrackDB 支持 schema-less、schema-mixed 和 schema-full 模式。 7. **[强大的安全性](docs/security.md)**:基于用户、角色和谓词[安全策略](docs/yql/YQL-Create-Security-Policy.md)的强大安全分析系统。 8. **静态数据加密**:可选择加密存储在磁盘上的所有数据。 ### 易于安装和使用 YouTrackDB 可以在任何平台上运行,无需配置和安装。 如果你想体验 YouTrackDB,请查看我们的 REPL [控制台](console/README.md)。 ``` docker run -it youtrackdb/youtrackdb-console ``` 要将 YouTrackDB 作为嵌入式数据库安装,请将以下依赖项添加到你的 Maven 项目中: ``` io.youtrackdb youtrackdb-embedded 0.5.0-SNAPSHOT ``` `youtrackdb-embedded` 构件是一个 shaded uber-jar,它将所有第三方依赖(Guava、Jackson、Groovy 等)重定位到 `com.jetbrains.youtrackdb.shade` 下,因此它们不会与你应用程序使用的版本发生冲突。 你还需要将 YTDB 快照存储库添加到你的 Maven pom.xml 文件中: ``` Central Portal Snapshots central-portal-snapshots https://central.sonatype.com/repository/maven-snapshots/ false true ``` 或者如果你使用的是 Gradle: ``` dependencies { implementation 'io.youtrackdb:youtrackdb-embedded:0.5.0-SNAPSHOT' } ``` 以及 ``` repositories { maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") mavenContent { snapshotsOnly() } } } ``` 如果你想使用 YouTrackDB 服务端,你可以使用 Docker 镜像启动它: ``` 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 ``` 并在 `secrets/root_password` 文件中提供数据库的 root 密码。 YouTrackDB 至少需要 JDK 21。 要了解如何使用 YouTrackDB,请参阅[入门指南](docs/getting-started.md)。 有关涵盖服务端和嵌入式部署的更多示例,请查看[示例](examples/src/main/java/io/youtrackdb/examples)项目。 ### 贡献 YouTrackDB 的每一项重大变更都要经过结构化的开发工作流:研究、设计、计划审查、逐轨道实现和评审。新的贡献者可以在开发工作流手册中学习如何端到端地运行它,从 [第 1 章 — 工作流一览](docs/workflow-book/chapters/01-workflow-at-a-glance.md)开始。
标签:ACID事务, JetBrains, JS文件枚举, 后台面板检测, 域名枚举, 对象关系映射, 数据库, 请求拦截, 风险缓解