HVML 是由中国首款开源基础软件 MiniGUI 的作者魏永明设计的描述式编程语言,也是世界首款可编程标记语言。

从 2020 年 5 月开始构思算起,魏永明带领团队历经两年多的时间,于 2022 年 7 月 31 日正式开源发布了 HVML 规范文档以及解释器、渲染器等软件,总代码行数逾百万!

面向碎片化世界的应用开发需求,HVML 为传统命令行(CLI)、桌面/嵌入式/移动端图形用户界面(GUI)应用、网页(Web)应用、以及人工智能生成应用(AIGA)的统一开发路径提供了全新的技术框架。HVML 蕴含了大量新颖的设计和独创的思想,是魏永明及其团队近三十年基础软件开发经验的结晶,一经发布便获得了业界的广泛关注。2022 年底,HVML 项目获评 CSDN 2022 “年度开源影响力项目”;2023 年 4 月,中国开源软件推进联盟(COPU)主席陆首群先生倡议:“全行业都应该积极支持 HVML 的研发!”2023 年 12 月,HVML 入选国际测试委员会(Bench Council)年度世界开源成果 Top100 榜。

重要里程碑回顾

  1. 2025 年 08 月:HVML 解释器支持内嵌 JS 并实现所有规范特性及预定义接口
  2. 2025 年 06 月:HVML 在线练习场正式上线
  3. 2025 年 05 月:飞漫软件发布 xGUI 0.9.22,从此窥见 HVML 的全栈和全平台野心
  4. 2025 年 05 月:为统一 Web 页面和传统 GUI 应用迈出的关键一步
  5. 2024 年 03 月:xGUI:填补自主浏览器渲染引擎的空白
  6. 2024 年 01 月:HVML 解释器 PurC 新增对 SQLite 的支持
  7. 2023 年 11 月:HVML 应用的热迁移技术——超操作系统的平台技术
  8. 2022 年 09 月:HVML 的惊人开发效率,一周完成汽车仪表应用
  9. 2023 年 04 月:HVML 解释器 PurC 0.9.8 发布,支持内嵌 Python 代码
  10. 2023 年 01 月:统一 CLI 和 GUI 指日可待——HVML 解释器 PurC 0.9.5 发布
  11. 2022 年 07 月:百万行代码,HVML 今日开源!
  12. 2022 年 01 月:廿月孕育,全球第一个可编程标记语言 HVML 正式诞生

HVML 开源解释器 PurC 0.9.26

PurC 0.9.26 是 HVML 开源解释器的一个重大里程碑版本。该版本完整实现了 HVML 规范 1.0 以及 HVML 预定义变量规范 1.0 定义的所有功能和接口。本版本新增特性有:

  1. 支持内嵌 JavaScript 代码(基于 QuickJS 实现)。现在可在 HVML 程序中使用 $JS.load() 装载 JavaScript 模块或脚本,然后使用 $JS.eval() 执行 JavaScript 代码或表达式并获取其结果。
  2. 支持运算符表达式,如 <init as max with (a > b ? a : b) />,提供了对常见算术运算符、逻辑运算符、比特位运算符、赋值运算符、串接运算符等的支持。
  3. 在运算符表达式中,可不使用 $ 前导字符而引用变量,从而简化代码的书写。
  4. 调整属性设置器的调用方式,从 setter(! ...) 调整为 setter!(...)
  5. 支持新的变体类型 bigint,可用于高精度运算。
  6. 调整了变体数据结构以降低内存的占用。
  7. 为渲染器使用异步渲染机制提供支持。
  8. 为文档序列化提供了全局选择器的支持,以方便 HVML 程序序列化输出指定的 HTML 片段而非全部 HTML 文档。
  9. 优化了 purc 的命令行参数,以方便使用用户自定义选项(--query-<key> <value>)来指定脚本的请求参数。

这是使用新的数据类型 BigInt 和运算符表达式重写的斐波那契额数列生成程序。

 

 

这是使用内嵌 JS 功能调用 JavaScript 脚本计算圆周率的示例程序。

 

 

HVML 闭源渲染器 xGUI 0.9.26

xGUI 是飞漫软件开发的 HVML 闭源渲染器,采用自研的渲染引擎(名为 Foil)。xGUI 通过灵活的软件架构来支持四种底层的渲染驱动器和各种不同的窗口系统。

xGUI 0.9.26 支持的渲染驱动器包括:

  • 字符终端:使用该渲染驱动器,可以在字符终端上展示 HVML 应用的页面并完成和用户的交互,从而为 CLI 应用利用 Web 前端技术提供便利。
  • MiniGUI:使用该渲染驱动器,可在中低端嵌入式设备上展示 HVML 应用的页面并完成和用户的交互,从而为中低端嵌入式设备的 GUI 开发提供便利。
  • Cairo:使用该渲染驱动器,可在高端嵌入式设备、桌面电脑、智能手机上展示 HVML 应用的页面并完成和用户的交互,从而为高端嵌入式设备、智能手机、桌面应用的 GUI 开发提供便利。
  • Skia:使用该渲染驱动器,可在高端嵌入式设备、桌面电脑、智能手机上展示 HVML 应用的页面并完成和用户的交互,从而为高端嵌入式设备、智能手机、桌面应用的 GUI 开发提供便利。

xGUI 0.9.26 支持的窗口系统包括:

  • MiniGUI:飞漫创始人魏永明发起的知名开源嵌入式窗口系统,主要运行于嵌入式 Linux 系统,也支持各类 RTOS。
  • Gtk:Linux 桌面系统使用的主流图形界面支持系统。
  • macOS:苹果为 Mac 系列电脑设计的操作系统。

截至目前,xGUI 支持 PC+TTY、RTOS+MiniGUI、Linux+MiniGUI、Linux+Gtk、macOS 等平台,未来还将支持 Android、iOS、Windows 等平台。

持续开发和维护 xGUI 具有极其重要的意义:除了完善 HVML 生态系统之外,还将填补自主浏览器渲染引擎的空白。目前流行的浏览器渲染引擎(WebKit、Blink 和 Gecko),尽管都是开源的,但均由欧美巨头把持,且国内在此领域几乎没有任何建树。xGUI 的出现将打破这一局面。

xGUI 0.9.26 的主要新增特性有:

  1. 支持 SVG。
  2. 支持异步渲染以提升整体性能。
  3. 修复若干缺陷。

下面是 xGUI 运行在 macOS 上的截图,其中包括渲染 SVG 和动态更新 SVG 对象的能力。

HVML 在线练习场

HVML 应用现在可将标准浏览器作为其渲染器,这不仅仅为统一 Web 页面和传统 GUI 应用的开发迈出了关键一步,也为开发 HVML 应用的在线开发工具打下了坚实基础。作为 HVML 应用在线开发工具的前置项目,HVML 在线练习场已正式上线运行,用电脑浏览器访问如下网站即可体验:

https://hybridrun.fmsoft.cn

HVML 在线练习场提供如下功能:

使用流行的 Monaco Web 代码编辑器编写 HVML 程序。 可通过链接中的 id 跟踪 HVML 程序的最新版本,方便分享代码给他人。 实时提示 HVML 程序中的词法或语法错误。 在线运行 HVML 程序。

一键安装

如果您使用的是 Ubuntu 24.04 LTS 系统(x86_64 架构),可一键安装 HVML 相关软件包:

curl -fsSL https://hvml.fmsoft.cn/install.sh | sh

HVML 开源组件

除 PurC 及 xGUI 之外,2025 年 08 月,HVML 社区更新了 HVML 开源渲染器 xGUI Pro 以及 FastCGI 进程管理器 HVML-FPM。

  • xGUI Pro 0.9.26。该版本为配合 PurC 0.9.26 的例行更新。
  • HVML-FPM 0.9.26。该版本为配合 PurC 0.9.26 的例行更新。

HVML 开源组件通过 https://github.com/HVMLhttps://gitee.com/HVML 两个平台发布:

下一步计划

在后续的 HVML 开源解释器 PurC 和商业解释器 xGUI 的开发中,开发团队将围绕优化和完善两个主题进行,预计将在 2025 年年底正式发布 PurC 1.0 版本和 xGUI 1.0 版本。

另外,HVML 社区领导者飞漫软件已经开始了 HVML 应用在线设计及开发工具的开发工作。利用该在线工具,产品经理/开发者,甚至任何会上网的人,都可通过浏览器设计自己的跨平台应用并完成整个开发和测试流程,最终部署到互联网上或者打包为桌面、智能手机或者嵌入式应用。

常见问题及解答

Q:HVML 是针对嵌入式和物联网使用的吗?

A:不仅仅是。HVML 是一种通用的胶水语言,HVML 的目标平台包括传统的桌面、服务器、智能手机、平板、嵌入式设备和物联网设备。

Q:HVML 是打算取代现有的 Web 前端开发技术,比如 JavaScript 吗?

A:没有这个计划。HVML 的渲染器会用到 Web 前端技术,但 HVML 的目标并不是取代现有的 Web 前端开发技术,而是面向未来的多屏协同场景下的需求,为应用的跨端运行提供全新的技术框架,同时作为合璧操作系统(HybridOS)的首选编程语言。

Q:除了 GitHub,还可以在哪里看到 HVML 的开源仓库?

A:除了 GitHub,HVML 相关文档及代码仓库还在 Gitee 平台上发布,其中包括:

  1. HVML 解释器(PurC):https://gitee.com/HVML/PurC
  2. HVML 图形渲染器(xGUI Pro):https://gitee.com/HVML/xGUI-Pro
  3. HVML 的 FastCGI 进程管理器 HVML-FPM:https://gitee.com/HVML/HVML-FPM

Q:相比 HybridOS 1.0,HybridOS 2.0 的主要区别是什么?

A:开发 HybridOS 1.0 时 HVML 尚未诞生。事实上,HVML 的设计来源于 HybridOS 1.0 开发中的一些原始设想。现在 HVML 已成熟,HybridOS 就有了自己的应用编程语言。

HybridOS 2.0 继承了 HybridOS 1.0 的图形栈以及大量基础设施(如数据总线)。其主要不同在于,开发者可使用 HVML 编程语言为 HybridOS 2.0 开发应用。

Q:在哪里可以看到 HybridOS 2.0 相关的源代码?

A:HybridOS 2.0 相关文档及代码仓库在 https://github.com/HybridOS2 上开源发布,其中包括:

  1. 合璧数据总线(HBDBus):https://github.com/HybridOS2/HBDBus
  2. 合璧网络设备管理器(HBDInetd):https://github.com/HybridOS2/HBDInetd
  3. 合璧操作系统设计及规范文档:https://github.com/HybridOS2/Documents

Q:有可以直接下载安装的软件包吗?

A:有社区小伙伴帮助我们完成了一些 Linux 发行版的安装包,官方也针对一些流行的发行版制作了二进制安装包。我们将这些软件包收集到了如下页面,可访问查看:

https://hvml.fmsoft.cn/software

Q:如何赞助 HVML 相关的项目?

A:大额的赞助,可通过“联系我们”留下联系方式,或者致信 hvml@fmsoft.cn,我们会及时联系您。

原文链接

https://hybridrun.fmsoft.cn