文章更新时间:2023-09-27 16:20
组件简介
维护者 | graphql-java 组织 | 许可证类型 | MIT |
首次发布 | 2018 年 6 月 4 日 | 最新发布时间 | 2021 年 5 月 23 日 |
GitHub Star | 5933 | GitHub Fork | 1118 |
依赖包 | 365 | 依赖存储库 | 1,689 |
com.graphql-java:graphql-java 是一个用于 Java/JVM 的 GraphQL 服务器实现,它提供了一个灵活的、高性能的、完全符合规范的 GraphQL 引擎。
官网:https://www.graphql-java.com/documentation/getting-started/
官方仓库:https://github.com/graphql-java/graphql-java
参考链接:
https://mvnrepository.com/artifact/com.graphql-java/graphql-java
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/com.graphql-java:graphql-java
组件健康度
技术健康度 | 该组件使用了 Java 语言,这是一种成熟、稳定、跨平台的编程语言,具有良好的性能和可扩展性。该组件遵循了 GraphQL 规范,并且支持各种特性,如类型系统、查询语言、执行引擎、错误处理、数据加载器、批量处理等。该组件还提供了一些高级功能,如自定义标量、指令、架构生成、订阅等。该组件的技术健康度较高。 |
社区健康度 | 该组件是由 graphql-java 组织维护的,该组织是一个专注于 GraphQL Java 实现的开源社区。该组件在 GitHub 上有超过 6.5k 的星标和 1.3k 的 fork,表明它受到了广泛的关注和使用。该组件也有一个活跃的贡献者团队,目前有 122 名贡献者,并且经常有新的 pull request 和 issue 被提交和解决。该组件还有一个官方的 Slack 频道,用于交流和支持。该组件的社区健康度较高。 |
更新和维护频率 | 该组件目前处于 v20.x 版本,最近一次的发布是在 2021 年 9 月 16 日,距离现在不到半年。该组件的更新频率较高,每个月都会有新的版本发布。该组件也有一个明确的发布计划,用于跟踪未来的版本和功能。该组件的维护频率也较高,每个月都会有大量的 commit 和 issue 被处理。该组件的更新和维护频率较高。 |
兼容性 | 该组件要求至少 Java 8 的运行环境,这是一个比较低的要求,可以适应多数的 Java 应用场景。该组件也支持与其他 Java 库或框架集成,如 Spring Boot、graphql-java-tools、graphql-java-extended-scalars 等。该组件还提供了一些扩展点,如数据加载器、指令、标量等,用于自定义 GraphQL 行为和类型。该组件的兼容性较好。 |
文档和支持 | 该组件有一个完善的文档网站,包括了快速入门、教程、基础知识、高级主题等内容。文档内容丰富而详细,覆盖了大部分的使用场景和问题。文档网站还提供了一个在线演示工具,用于体验和测试 GraphQL 查询。文档网站还提供了一个购买书籍的链接,书籍是由该组件的维护者编写的,涵盖了更多的深入内容和实践经验。文档网站还提供了一个 Slack 频道的链接,用于加入社区和获取支持。文档网站还提供了一个 GitHub 仓库的链接,用于查看源码和提交 issue。该组件的文档和支持较好。 |
com.graphql-java:graphql-java 是一个技术健康度、社区健康度、更新和维护频率、兼容性、文档和支持都较高的组件,可以作为一个可靠的 GraphQL Java 实现。该组件的健康度较高。
参考链接:
https://github.com/graphql-java/graphql-java
https://www.graphql-java.com/documentation/getting-started/
https://github.com/graphql-java
https://github.com/graphql-java-kickstart/graphql-java-tools
https://www.graphql-java.com/documentation/getting-started/
组件许可证解读
MIT 许可证是一种非常宽松的自由软件许可证,它起源于麻省理工学院。它可以分为三个部分,分别是:
- 授予条款:这个部分允许用户对软件进行任何操作,例如使用、复制、修改、合并、发布、分发、再许可和/或出售软件,不需要支付费用或获取许可。
- 条件条款:这个部分要求用户在软件的所有副本或实质部分中,包含版权声明和许可声明,以保护作者或版权所有者的知识产权,以及让用户知道软件的许可证。
- 免责条款:这个部分声明作者或版权所有者对软件不承担任何责任,包括保证、担保、索赔、损害或其他责任,无论是因为软件本身或软件的使用而导致的。
MIT许可证是一种非常宽松的开源许可证,鼓励软件的自由使用、修改和分发,同时降低了法律责任。
许可证原文链接:https://github.com/graphql-java/graphql-java/blob/master/LICENSE.md
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-2023-8874 | GraphQL Java 安全漏洞 | 低危 | [1.2,17.5) | 17.5 |
MPS-2022-53647 | graphql-java <19.0 存在拒绝服务漏洞 | 高危 | (-∞,0.0.0-2022-07-26T05-45-04-226aabd9) | 0.0.0-2022-07-26T05-45-04-226aabd9 |
同类型可替代组件
- Neo4j Graph Database:这是一个图数据库,可以将数据之间的关系展现出来。它支持各种图查询语言,如 Cypher、Gremlin、SPARQL 等。它也提供了一个 GraphQL 接口,可以用 GraphQL 查询图数据。官网:https://neo4j.com/developer/graph-database/
- Redis:这是一个高性能的键值存储系统,可以存储字符串、哈希、列表、集合等数据结构。它也支持图数据模型,可以用 RedisGraph 模块实现图查询和分析。官网:https://redis.io/
- Azure Cosmos DB:这是一个分布式的多模型数据库,可以支持文档、键值、列族、图等数据模型。它也提供了一个 GraphQL API,可以用 GraphQL 查询和操作数据。官网:https://azure.microsoft.com/en-us/products/cosmos-db
- ArangoDB:这是一个开源的多模型数据库,可以支持文档、键值、图等数据模型。它也提供了一个 GraphQL 接口,可以用 GraphQL 查询和操作数据。官网:https://www.arangodb.com/
组件SBOM
组件名称 | 版本 | 是否直接依赖 | 仓库 |
com.google.guava:listenablefuture | 9999.0-empty-to-avoid-conflict-with-guava | 是 | maven |
org.antlr:ST4 | 4.3.4 | 否 | maven |
com.google.guava:guava | 32.1.2-jre | 是 | maven |
org.antlr:antlr4-runtime | 4.11.1 | 是 | maven |
com.google.guava:guava-parent | 32.1.2-jre | 是 | maven |
com.google.guava:failureaccess | 1.0.1 | 是 | maven |
org.antlr:antlr4 | 4.11.1 | 是 | maven |
com.ibm.icu:icu4j | 71.1 | 否 | maven |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
https://www.murphysec.com/console/report/1706943085367050240/1706943085450936320?allow=1