文章更新时间:2023-09-21 14:30
组件简介
维护者 | alibaba 组织 | 许可证类型 | Apache-2.0 |
首次发布 | 2018 年 1 月 4 日 | 最新发布时间 | 2023 年 9 月 9 日 |
GitHub Star | 4287 | GitHub Fork | 1091 |
依赖包 | 18 | 依赖存储库 | 114 |
QLExpress是一种强大,轻量级,动态的Java平台语言,旨在提高开发人员在不同业务场景中的生产力。
官方仓库:https://github.com/alibaba/QLExpress
参考链接:
https://mvnrepository.com/artifact/com.alibaba/QLExpress
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/com.alibaba:QLExpress
组件健康度
技术健康度 | 这个组件是一个轻量级的动态脚本引擎,可以在Java平台上执行自定义的业务逻辑和表达式。它具有以下的技术优势:线程安全,引擎运算过程中的产生的临时变量都是threadlocal类型。高效执行,比较耗时的脚本编译过程可以缓存在本地机器,运行时的临时变量创建采用了缓冲池的技术,和groovy性能相当。弱类型脚本语言,和groovy,javascript语法类似,虽然比强类型脚本语言要慢一些,但是使业务的灵活度大大增强。安全控制,可以通过设置相关运行参数,预防死循环、高危系统api调用等情况。代码精简,依赖最小,250k的jar包适合所有java的运行环境,在android系统的低端pos机也得到广泛运用。 |
社区健康度 | 这个组件是由阿里巴巴开源的一个项目,目前在GitHub上有4.3k个星标和1.1k个分支。它有一个活跃的开发者社区,最近一次发布版本是在2023 年 9 月 9 日。它也有一些用户反馈和讨论的平台,比如CSDN和阿里云开发者社区。它的社区健康度较高,可以得到及时的更新和支持。 |
更新和维护频率 | 这个组件的更新和维护频率较高,从GitHub上可以看到,它在过去一年内发布了4个版本,每个版本都修复了一些bug或增加了一些功能。它也有一些贡献者参与了代码提交和合并请求。它的更新和维护频率说明了它的技术活力和稳定性。 |
兼容性 | 这个组件的兼容性较好,它可以在任何Java平台上运行,包括Android系统。它也支持自定义类加载器。它不依赖于其他第三方库,只需要引入一个jar包就可以使用。它的兼容性说明了它的易用性和扩展性。 |
文档和支持 | 这个组件的文档和支持较为完善,它在GitHub上提供了详细的README文件,介绍了它的背景、依赖、调用、语法、功能、示例等内容。它也提供了一个版本历史文件,记录了每个版本的变化和修复。它还有一个问题列表,可以查看用户提出的问题和开发者给出的回答。它的文档和支持说明了它的可靠性和可学习性。 |
com.alibaba:QLExpress 这个组件是一个优秀的动态脚本引擎组件,它具有高效、灵活、安全、精简等特点,在电商业务场景中有很强的影响力。它也有一个活跃的社区,可以得到及时的更新和支持。它还有一个良好的兼容性和文档,可以方便用户使用和学习。综上所述,该组件的健康度很高,值得推荐和使用。
参考链接:
https://github.com/alibaba/QLExpress
https://github.com/alibaba/QLExpress/releases
https://blog.csdn.net/YuYunTan/article/details/101436910
https://developer.aliyun.com/article/621206
组件许可证解读
Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:
- 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
- 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
- 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
- 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
- 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
- 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。
需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。
许可证原文链接:https://github.com/alibaba/QLExpress/blob/master/LICENSE
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-nsqf-18wp | QLEpress<=3.3.1 任意代码执行漏洞 | 严重 | [3.1.7,3.3.1] | 暂无 |
同类型可替代组件
- Groovy: Groovy是一种基于Java平台的动态脚本语言,它具有简洁、优雅、易于学习的语法,可以无缝地与Java代码和类库集成,支持多种编程范式,如面向对象、函数式、闭包等。官网:https://groovy-lang.org/
- Aviator: Aviator是一个轻量级、高性能的表达式求值引擎,它使用Java编写,可以在任何Java项目中使用,支持基本数据类型、集合类型、运算符、函数等特性,可以用于实现复杂的业务规则。官网:https://code.google.com/archive/p/aviator/
组件SBOM
组件名称 | 版本 | 是否直接依赖 | 仓库 |
commons-beanutils:commons-beanutils | 1.9.4 | 是 | maven |
commons-lang:commons-lang | 2.4 | 是 | maven |
commons-collections:commons-collections | 3.2.2 | 否 | maven |
commons-logging:commons-logging | 1.2 | 否 | maven |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
https://www.murphysec.com/console/report/1704692293386764288/1704692293491621888?allow=1