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 榜。
重要里程碑回顾
- 2025 年 05 月 16 日:飞漫软件发布 xGUI 0.9.22,从此窥见 HVML 的全栈和全平台野心
- 2025 年 05 月 09 日:为统一 Web 页面和传统 GUI 应用迈出的关键一步
- 2024 年 03 月:xGUI:填补自主浏览器渲染引擎的空白
- 2024 年 01 月:HVML 解释器 PurC 新增对 SQLite 的支持
- 2023 年 11 月:HVML 应用的热迁移技术——超操作系统的平台技术
- 2022 年 09 月:HVML 的惊人开发效率,一周完成汽车仪表应用
- 2023 年 04 月:HVML 解释器 PurC 0.9.8 发布,支持内嵌 Python 代码
- 2023 年 01 月:统一 CLI 和 GUI 指日可待——HVML 解释器 PurC 0.9.5 发布
- 2022 年 07 月:百万行代码,HVML 今日开源!
-
2022 年 01 月:廿月孕育,全球第一个可编程标记语言 HVML 正式诞生
飞漫软件发布 xGUI 0.9.22
2023 年 12 月,HVML 社区领导者飞漫软件启动了 HVML 渲染器 xGUI 的开发工作。现有的 HVML 渲染器 xGUI Pro 是基于 WebKit 浏览器引擎开发的,存在架构臃肿且仅支持 Linux 平台的缺点。xGUI 将采用自研的渲染引擎(名为 Foil),通过灵活的软件架构来支持三种底层的渲染驱动器和各种不同的窗口系统:
- 字符终端:使用该渲染驱动器,可以在字符终端上展示 HVML 应用的页面并完成和用户的交互,从而为 CLI 应用利用 Web 前端技术提供便利。
- MiniGUI:使用该渲染驱动器,可在中低端嵌入式设备上展示 HVML 应用的页面并完成和用户的交互,从而为中低端嵌入式设备的 GUI 开发提供便利。
- Skia:使用该渲染驱动器,可在高端嵌入式设备、桌面电脑、智能手机上展示 HVML 应用的页面并完成和用户的交互,从而为高端嵌入式设备、智能手机、桌面应用的 GUI 开发提供便利。
经过开发团队一年多的努力,xGUI 已支持 HTML 5 和 CSS 2.2 的绝大部分特性,飞漫软件近日发布了 xGUI 0.9.22 版本。如下视频是 xGUI 运行在 Linux + MiniGUI 嵌入式平台上的一款门禁系统应用:
上述视频展示的门禁系统应用,体现了如下 HVML 和 xGUI 的功能特色:
- 设置 WiFi 连接;展示了如何使用 HVML 程序和操作系统交互。
- 联机更新时间和天气;展示了如何使用 HVML 访问互联网内容。
- 自带中英文输入法;而且输入法界面也是用 HVML 编写的。
- 使用 SQLite 管理各种数据;展示了如何使用 HVML 操作 SQLite 数据库。
- 支持常见的输入构件(checkbox、radio、button、select),支持对话框表单的提交。
- 支持触摸操作,自带滑动加速或阻尼效果等。
- 支持 PNG、JPEG、WebP 等图片格式。
- 支持 GIF 动画。
- 支持页面切换过渡效果。
xGUI 的下一个版本,将增加对 SVG 的支持,预计将在六月底发布。
如果开发者使用 Ubuntu 24.04 LTS 发行版,则可通过如下命令一次性安装 xGUI(也包括 PurC、xGUI Pro 等):
curl -fsSL https://hvml.fmsoft.cn/install.sh | sh
上述命令将安装两个不同的 xGUI 版本:
- xGUI for Gtk-4.1,使用 Skia 渲染驱动器,在 GNOME 环境中执行。执行命令
xgui4gtk --help
可获取命令行选项。 - xGUI for MiniGUI,使用 MiniGUI 渲染驱动器,在 MiniGUI 中执行。执行命令
xgui4mgsa --help
可获取命令行选项。
飞漫软件同时发布了若干 HVML 示例程序包(hvml-samples)以及若干综合的合璧操作系统 HVML 示例应用源代码仓库(HBDSamples),可访问如下页面下载对应的源代码包或获取仓库链接:
从 xGUI 的发布窥见 HVML 的全栈和全平台野心
2024 年起,HVML 社区领导者飞漫软件将研发重点转移到了 xGUI 上。此番发布 xGUI,让 HVML 离当初确定的全栈和全平台目标更近了一步:
- 为 HVML 应用的跨端运行提供技术保障。届时,xGUI 将支持 PC+TTY、RTOS+MiniGUI、Linux+MiniGUI、Linux+Gtk、Windows、macOS、Android、iOS 等平台。
- 基于最近的更新,HVML 应用现在可将标准浏览器作为其渲染器,也就是说,HVML 应用现在可直接运行在浏览器中。用电脑浏览器访问如下网站即可体验:https://hybridrun.fmsoft.cn。
另外,xGUI 还填补了自主浏览器渲染引擎的空白。目前流行的浏览器渲染引擎(WebKit、Blink 和 Gecko),尽管都是开源的,但均由欧美巨头把持,且国内企业在此领域几乎没有任何建树。显然,xGUI 的发布将打破这一局面。我们相信,xGUI 的发布对中国基础软件行业的影响将是深远的。
不过遗憾的是,飞漫软件没有选择开源发布 xGUI。
下一步计划
HVML 社区领导者飞漫软件已经开始了 HVML 应用在线设计及开发工具的开发工作。利用该在线工具,产品经理/开发者,甚至任何会上网的人或者人工智能机器人,都可通过浏览器设计自己的跨平台应用并完成整个开发和测试流程,最终部署到互联网上或者打包为桌面、智能手机或者嵌入式应用。
常见问题及解答
Q:HVML 是针对嵌入式和物联网使用的吗?
A:不仅仅是。HVML 是一种通用的胶水语言,HVML 的目标平台包括传统的桌面、服务器、智能手机、平板、嵌入式设备和物联网设备。
Q:HVML 是打算取代现有的 Web 前端开发技术,比如 JavaScript 吗?
A:没有这个计划。HVML 的渲染器会用到 Web 前端技术,但 HVML 的目标并不是取代现有的 Web 前端开发技术,而是面向未来的多屏协同场景下的需求,为应用的跨端运行提供全新的技术框架,同时作为合璧操作系统(HybridOS)的首选编程语言。
Q:除了 GitHub,还可以在哪里看到 HVML 的开源仓库?
A:除了 GitHub,HVML 相关文档及代码仓库还在 Gitee 平台上发布,其中包括:
- HVML 解释器(PurC):https://gitee.com/HVML/PurC
- HVML 图形渲染器(xGUI Pro):https://gitee.com/HVML/xGUI-Pro
- 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 上开源发布,其中包括:
- 合璧数据总线(HBDBus):https://github.com/HybridOS2/HBDBus
- 合璧网络设备管理器(HBDInetd):https://github.com/HybridOS2/HBDInetd
- 合璧操作系统设计及规范文档:https://github.com/HybridOS2/Documents
Q:有可以直接下载安装的软件包吗?
A:有社区小伙伴帮助我们完成了一些 Linux 发行版的安装包,官方也针对一些流行的发行版制作了二进制安装包。我们将这些软件包收集到了如下页面,可访问查看:
https://hvml.fmsoft.cn/software
Q:如何赞助 HVML 相关的项目?
A:个人打赏性质的赞助,您可以点击文后的原文链接。大额的赞助,可通过“联系我们”留下联系方式,或者致信 hvml@fmsoft.cn
,我们会及时联系您。