跳转到正文

运行时目录 ​

运行时由 GitHub Actions 手动构建。产品页面可以保持独立,但共享同一工具链和操作系统的产品只发布一份物理资产。

物理运行时提供的产品架构状态
JVMJava、Kotlin、Groovy、Scala、Clojureriscv64已构建
NodeJavaScript、TypeScript、HTML/Pug、CSS/Sass/PostCSSriscv64已构建
PythonCPythonriscv64已构建
C & C++GCC / Clangriscv64已构建
GoGoriscv64已构建
RustRust / Cargoriscv64已构建
PHPPHP CLIriscv64已构建
RubyRuby / Bundlerriscv64已构建
C#.NET SDKriscv64无可验证 SDK,不生成资产

实测体积 ​

“原始”是 container2wasm 生成的完整 runtime.wasm;“gzip 下载”是浏览器首次启动该环境时取得全部分片的字节总量。页面只下载当前产品映射到的一套运行时。

运行时实测报告:8/8 套物理资产,依据各目录 manifest.json 生成。

运行时实际工具版本原始gzip 下载分片下载 / 原始
JVMOpenJDK 25.0.4 · Kotlin 2.3.20 · Groovy 5.1.0 · Scala 3.3.8 · Clojure 1.12.5 · CLI 1.12.5.1664578.9 MiB367.9 MiB5863.6%
NodeNode v24.18.1 · TypeScript 7.0.2 · Pug 3.0.4 · html-validate 11.10.0 · Sass 1.103.1 · PostCSS 8.5.26 · postcss-cli 11.0.1 · Autoprefixer 10.5.4 · Stylelint 17.14.1202.8 MiB76.2 MiB2137.6%
PythonPython 3.12.14126.8 MiB54.5 MiB1343.0%
C & C++gcc (Alpine 15.2.0) 15.2.0658.5 MiB255.6 MiB6638.8%
Gogo version go1.25.10 linux/riscv64446.3 MiB153.2 MiB4534.3%
Rustrustc 1.91.1 (ed61e7d7e 2025-11-07) (Alpine Linux Rust 1.91.1-r2)650.1 MiB255.4 MiB6639.3%
PHPPHP 8.4.21 (cli) (built: May 7 2026 16:01:59) (NTS)77.0 MiB36.9 MiB847.9%
Rubyruby 3.4.9 (2026-03-11 revision 76cca827ab) +PRISM [riscv64-linux-musl]87.5 MiB40.0 MiB945.7%
合计8 套运行时2827.9 MiB1239.8 MiB28643.8%

核对时间:2026-08-30。逐分片字节数与 SHA-256 以 manifest 为准。

分片按 10 MiB 原始数据切割后分别使用 gzip level 9 压缩,单个部署文件必须小于 24 MiB。表中总量是当前 gzip 文件之和,不等同于 Git pack 或 Cloudflare 构建时的最终占用。

为什么按家族合并 ​

container2wasm 保存的是可启动的 RISC-V 64 Linux 用户空间和容器文件系统,而不是单个语言命令。每套资产都会重复携带 Alpine、Bash、Git、coreutils、jq 和终端工具,因此共享 JDK 或 Node.js 的语言没有必要分别保存完整 Linux。

  • JVM 只保留一份 OpenJDK,同时提供 Java、Kotlin、Groovy、Scala 和 Clojure。Groovy、Scala、Clojure主要增加 JAR 与命令脚本。
  • Node 只保留一份 Node.js 与 npm,同时提供 TypeScript、Pug、html-validate、Sass、PostCSS、Autoprefixer 和 Stylelint。
  • HTML/CSS 本身仍由浏览器解析;Pug 与 Sass/PostCSS 演示的是工程源码到标准 HTML/CSS 产物的构建过程。
  • 独立工具链 无法共享核心编译器,继续分别发布。

如何理解这些数字 ​

  • 网络成本看“gzip 下载”;浏览器缓存命中后不重复获取未变化的哈希分片。
  • 内存与启动压力不能只看下载量;分片还要解压并重组 WASM,实际峰值会高于原始文件大小。
  • 普通 Git 会保留旧提交中的大文件。合并资产验证后将整理首次拆分构建的历史,只让当前八套资产进入主分支克隆历史。
  • 压缩率不代表运行效率。JAR 等内容已经压缩,外层 gzip 收益通常小于源码和普通二进制文件。

Shell 共享运行时 ​

  • shell/base:Alpine 3.22、BusyBox ash 和基础文件命令。
  • shell/multi:Alpine 3.22、Bash、Zsh、Fish 以及 Hello Shell 当前的多 Shell 工具集。
  • shell/powershell:Alpine 3.22、PowerShell Core 与 Bash,保留 AMD64 架构。

Hello Shell 的三个 container2wasm 页面分别读取上述资产;教程、终端组件和实验素材继续由 Shell 管理。base、multi 使用 RISC-V 64,PowerShell 明确使用 AMD64,两种架构之间没有自动回退。

运行时实测报告:3/3 套物理资产,依据各目录 manifest.json 生成。

运行时 / 架构实际工具版本原始gzip 下载分片下载 / 原始
Alpine / ash / riscv64历史资产:原清单未记录实际工具版本54.3 MiB25.9 MiB647.8%
多 Shell / riscv64历史资产:原清单未记录实际工具版本153.4 MiB63.5 MiB1641.4%
PowerShell / amd64历史资产:原清单未记录实际工具版本287.8 MiB112.1 MiB2938.9%
合计3 套运行时495.4 MiB201.5 MiB5140.7%

核对时间:2026-10-04。逐分片字节数与 SHA-256 以 manifest 为准。

这批资产从 Hello Shell 的现有 gzip 分片迁入,未重新编译。清单保留原采集时间,provenance 记录旧清单摘要、完整 WASM 摘要和迁移时源码提交;该提交不代表原始构建提交。原清单未记录实际工具版本,因此不推定版本号。

后续由 build-shell-runtimes 手动重建,可选择 base、multi、powershell 或 all,不会随 Lang 构建。工作流采集实际版本,验证分片后只回写 Shell 资产和本页;源码分支前移时停止发布并保留 Artifact。

最后更新:

WebAssembly、WASI 与浏览器运行时手册