@daugasauron/dolly

中文文档
0.1.5发布于 2026/11/07MITES Module零依赖近 30 天下载 2718

Dolly的运行时间:在浏览器标签中为hem64提供类似POSIX的用户空间. 用启动器运行图像 () .

中文使用文档
文档目录7 节
  1. 一页
  2. 更多主机模块
  3. 颜色
  4. 弹出
  5. 服务
  6. 你自己的画像
  7. 主机模块

内嵌多莉

Dolly 是一个像 POSIX 的用于 wasm64 的用户空间, 它运行在浏览器标签: a Wasm 内核、 私人怀斯姆记忆中的程序, 以及连接到 浏览器。 这些 npm 包将其放入自己的一页. 他们的第一个用途是 替换网络前端的代理( e)docs/agent-frontend.md 页:1.

软件包它所持有的
@daugasauron/dolly运行时间 : boot(),内核,进程运行时间,其图像构建器,以及作为自身机械的主机模块(runtime, (中文(简体) ), http, (中文(简体) ), threads, (中文(简体) ), dso, (中文(简体) ), stack, (中文(简体) ), nena, (中文(简体) ), snapshot, (中文(简体) ), packages(中文(简体) )
@daugasauron/dolly-host-NAME每个设备主机模块: display (Ghostty的终端和程序的帧), input, (中文(简体) ), gpu, (中文(简体) ), audio, (中文(简体) ), microphone, (中文(简体) ), touch, (中文(简体) ), download (截至 dolly-host-save: npm 不使用新名称的单词, upload, (中文(简体) ), html, (中文(简体) ), sockets, (中文(简体) ), pty
@daugasauron/dolly-image-NAME图像目录 boot()数字 : default (外壳,它的文本工具,终端,卷曲, amy, (中文(简体) ), nena, (中文(简体) ), ps, (中文(简体) ), html, (中文(简体) ), pi-minimal (用 JavaScript 的 Pi 编码代理, 外壳, POSIX 工具, 卷曲, riggrep 和 fd, 打开 display, (中文(简体) ), input, (中文(简体) ), download 财务报告和审定财务报表 html 单是:README的"Pi with npm","活活活活活活", python-data (单位:千美元)default 与Python 3.14,pip, C编译器,NumPy,熊猫,Matplotlib和海生. 它的README给安装线和 FROM 一行的食谱建在它上面。 内容 amy-index.txt 列出图像持有的软件包, 所以 amy list 财务报告和审定财务报表 amy info 描述他们
@daugasauron/dolly-package-NAME用于您自己图像的软件包 : git (有diff和补丁), cc (带有 Make 的 C 和 C++ 编译器), python (3.14 有管道;它带来 libffi 财务报告和审定财务报表 cc, (中文(简体) ), numpy, (中文(简体) ), pandas, (中文(简体) ), matplotlib, (中文(简体) ), seaborn 财务报告和审定财务报表 python-dateutil它的目录保存着它的目录,元数据,包和食谱,就像一个图像一样,没有什么可以启动的;它取决于它安装的软件包,所以npm用它安装它们
@daugasauron/dolly-build这个 dolly-build 命令:带有自己图像的工程, FROM pi-minimal 带着包裹 INSTALLs, 在浏览器中建入静态主机服务站点( 下方“ 您自己的图像 )
npm install @daugasauron/dolly @daugasauron/dolly-image-default \
  @daugasauron/dolly-host-display @daugasauron/dolly-host-input @daugasauron/dolly-host-save \
  @daugasauron/dolly-host-upload @daugasauron/dolly-host-html

每个主机模块和图像都取决于运行时间本身的版本,以及 在它安装的软件包上也有一个软件包。 图像或软件包不依赖于 它所声明的主机模块:用它安装它们( 它们的README 命名它们), 所以 并肩并肩躺着 node_modules/@daugasauron/。 。 。 . 不,不,不,不,不,不,不,不。 亚伦2号,后期需要 nodeLinker: node-modules 内 .yarnrc.yml: Plig'n'Play 没有文件可供服务.

一页

<!doctype html>
<meta charset="utf-8">
<main id="dolly" style="position:fixed;inset:0"></main>
<script type="module">
  import { boot } from "./node_modules/@daugasauron/dolly/src/browser.mjs";
  import { images, image, modules } from "./node_modules/@daugasauron/dolly-image-default/index.mjs";
  const dolly = await boot(document.querySelector("#dolly"), { images, image, modules });
</script>

boot(element, options) 运行图像在 element,页面大小。 这个 一旦图像程序启动, 即可解析到会话上的页面控件 (单位:千美元)hostModules, (中文(简体) ), visibleTerminalText(), (中文(简体) ), waitForInteractiveTerminal(pattern), (中文(简体) ), 接下来 submit(command) 和每个模块添加的东西) 显示元素中的失败。 多莉所显示的 模块的按钮, 相互间的对话和指标,留在里面 element及其样式 仅选择此位置; 输入到页外的自控键中 页面的.

选项含义
images图像目录的 URL : dist/dolly-images.json图像的元数据 和包,他们的食谱,所有的数据. @daugasauron/dolly-image-default是因为 index.mjs 出口它自己。 页面有一个图像目录 。 包会读出一个图像 留在原产地的私人存储器中, 所以它会重新开始而不下载它们(src/pack-store.mjs(中文(简体) )
image要运行的图像, 名称
modules区域 URL module.json 该页面的每个主机模块。 登记簿会装入这些和没有其它的; 图像的 REQUIRES HOST 一定在他们中间
site可选:服务多利自有页面的网站的URL(session/, (中文(简体) ), sessions/, (中文(简体) ), docs/就像多莉的网站一样 鉴于已保存的会话名称本身在标签的 URL 作为网站的会话路由和模块链接到这些页面
http可选 { policy, relays } 用于HTTP经纪人,该页面是一个网络边缘(docs/http.md). 没有策略, 程序可能获取 HTTPS URL
files可选 { "/absolute/path": text or Uint8Array },在程序启动前在图像上写入: 皮的指示和技能(docs/agent-frontend.md),开始脚本. 程序可以读取;它们不是为了秘密
session可选: 此浏览器中保存的会话名称, 当它被保存为新开始时打开( S)files 绝不然, 这需要 snapshot@0,其保存(Ctrl+Shift+S)在浏览器的存储中为页面的出处保存一个会话,并在没有页面的页面上保存一个会话 site在标签地址中将其命名为 ?session=NAME 给回这里的页面

页面,而不是图像,选择模块和策略,先于 图像运行。 一个程序只能通过它们才能到达浏览器的任何部分.

更多主机模块

default 声明 nena@0,所以一个会话可以启用页面上的模块,并且 图像不声明。 安装其软件包并添加其 module.json数字 :

npm install @daugasauron/dolly-host-gpu @daugasauron/dolly-host-microphone @daugasauron/dolly-host-pty
const gpu = new URL("./node_modules/@daugasauron/dolly-host-gpu/module.json", location.href).href;
const dolly = await boot(element, { images, image, modules: [...modules, gpu] });

nena enable gpu 然后给出 GPU 程序,或者,如果浏览器没有 WebGPU 适配器,无法打开的设备 ENODEV。 。 。 .

颜色

终端的颜色和弹出是页面的,而不是图像的. 设定 这些在样式表的元素(或上方)上与页面相匹配; 未确定,他们是多莉的:

#dolly {
  --dolly-background: #262626;          /* the terminal's and the popups' */
  --dolly-color: #e8e3d7;               /* their text */
  --dolly-accent: #f2d45c;              /* the cursor and the selection; the popups' headings, buttons, focus */
  --dolly-display-palette-1: #e8e3d7;   /* -0 to -15: the 16 colours programs name */
}

未设置, 16个颜色程序名称中, 有黑色(-0)是背景,黄色 和亮黄色(-3, (中文(简体) ), -11口音,明亮的黑色(-8(中文(简体) ) #77736c 财务报告和审定财务报表 其它的文本颜色,所以一个程序会像它的文本一样显示红色。 A 类 值可以是任何 CSS 颜色; 不计为未设置的颜色 。 终点站 a. 以任何规则或媒体查询方式,在启动时和在改变时使用 弹出一开.

弹出

html@0 在终端的弹出中显示一个程序的 HTML 文档 bot() 的元素: 报告,或提交字段返回到 程序( Pi ) ask_user 财务报告和审定财务报表 show_html) (中文(简体) ). 弹出取文件的文本, 标题、清单、表格和表格,没有其他内容;其外观是: 页面的:上面的颜色和这些,未设置多莉的:

#dolly {
  --dolly-html-font: ui-monospace, monospace;
  --dolly-html-color-scheme: dark;       /* the form controls' own colours */
  --dolly-html-font-file: none;          /* or url(…): the font of the first family above */
}

弹出本身没有加载任何内容: 页面获取字体文件, 一次, 手 弹出它的字节; 没有一个, 系统的名称字体。 页面读取 每次弹出时属性。 多莉的网站集 "Dolly IosevkaTerm SemiBold", monospace 及其字体文件.

服务

  • 服务已安装的套件, 如它们说谎: 运行时会找到自己的文件 除了自己,和 dolly-image-default是因为 index.mjs 查找 安装在下面的软件包 node_modules/@daugasauron/。 。 。 .
  • 发送 Cross-Origin-Opener-Policy: same-origin 财务报告和审定财务报表 Cross-Origin-Embedder-Policy: require-corp 与页面: Dolly 需要共享 内存,浏览器只给一个跨源孤立的页面.
  • 服务 .wasm 作为 application/wasm, (中文(简体) ), .mjs 作为 text/javascript 财务报告和审定财务报表 .json 作为 application/json: 浏览器导入主机模块的显示和图像 目录的目录和元数据只使用该类型.
  • 不需要捆绑:这些是ES模块,工人和Wasm文件.

你自己的画像

dolly-build 构建一个 Dolly 文件 (docs/dollyfile.md (储存库) FROM 已安装 pi-minimal,带有目录为 安装在它旁边的站点上: 任何静态主机都充当它的目录 谎言。 构建在一个无头浏览器中运行, 并安装了运行时间 构建器, 随着目录图像的构建; 命令为软件包服务 它在127.0.0.1上,并写下它交回的东西。 没有它,也没有它的网站, 从网络获取的页面或图像: npm install,则 软件包按住每个文件。 构建的浏览器到达服务器和 URL 食谱本身 SOURCE 单行;其本身的要求(其供应商的更新, 时钟和自动填充)前往拒绝它们的命令的代理.

npm install @daugasauron/dolly-build @daugasauron/dolly-package-git
npx dolly-build init my-pi git
npx dolly-build Dollyfile-my-pi my-pi
  • dolly-build init NAME [PACKAGE…] 写一个软件包所在的工程 并拒绝在文件中写入 : Dollyfile-NAME (主机模块) 联 合 国 pi-minimal 和每个包裹, FROM pi-minimal 财务报告和审定财务报表 INSTALL 各笔捐款 包在已安装的针,行用于 Pi 指示,一个技能,一个扩展, 启动 Pi 的工具和脚本,以及 pi-minimal是因为 ENTRY和 public/, (中文(简体) ), 页面文件 : index.html (策略、弹出字体和 workspace/ 财务报告和审定财务报表 theme.json 页:1 boot()是因为 files列表中 workspace.json, (中文(简体) ), theme.json (沙盒的颜色:Pi的主题,写在图像上) 靴子,它的背景,文本,口音和哑音 页面设置为终端 和弹出 workspace/README.md除非项目有一个,a .gitignore 页:1 node_modules/ 和现场。 它命名了主机模块 软件包,当软件包需要一个时,该页面缺少(python是因为 sockets) (中文(简体) ). 寄存器README的"Pi with npm"表示每个文件的用途.
  • 食谱是宣布沙盒的地方 在前面添加行 ENTRY数字 : FILE 和一个文件的正体(缩入4个空格), INSTALL 软件包 其目录被安装(它需要的每个软件包都随它而来,所以) python 带来 cc, (中文(简体) ), SLOP 在构建时运行图像工具. FROM 携带 base 的文件、环境和导出,但不包括主机模块或 ENTRY,所以请 食谱重复这些;一个包的 REQUIRES HOST 菜谱里一定有排行, 而建筑名称 一个缺失。 配方最多为128个基B; /workspace 实值 绝不是图像的一部分( e)boot()是因为 files 在每个靴子上写项目).
  • dolly-build Dollyfile-NAME OUT 写入网站 OUT,替换它的一个 上面写着: public/, (中文(简体) ), workspace.json (文件编号: public/workspace/),运行时间(dolly/),设备主机模块 声明(dolly-host-NAME/, (中文(简体) ), coi-serviceworker.js 财务报告和审定财务报表 image/,图像的 目录作为图像包列出(其目录、元数据和包、 食谱,它是从,它的 amy-index.txt 还有一个 index.mjs) (中文(简体) ). 页面 进口 ./dolly/src/browser.mjs 财务报告和审定财务报表 ./image/index.mjs。图像此食谱 在这个运行时间的基础上构建,所以更改为 public/ 一个人需要几秒钟. --browser chrome (默认的), chromium 或者说 firefox (Playwright's, after npx playwright-core install chromium 或者说 firefox) (中文(简体) ). 两个命令在安装软件包的地方运行: node_modules/@daugasauron/ 持有(npm,pnpm和Yarn 1). 一行 , 继续 指定一个没有安装的软件包所持有的图像名称 .
  • 服务 OUT 与任何静态文件服务器, python3 -m http.server -d OUT 打开 诀竟 当主机发送隔离头(上面的"服务")时 页面是孤立的;如果没有, init页面登记册 coi-serviceworker.js,将它们添加到网站的响应中,并装入 又是在它下边.
  • 食谱可能开始 FROM 另一个已安装的图像, python-data 说: 软件包的 README 给出 FROM 排行,食谱重复图像 REQUIRES HOST 列(项目自有脚本的FILE和在构建时运行的SLOP) (见a/cn.9/wg.iii/wp.83,附件). init 只写 Pi 的工程; 页面输入 public/index.html 是一个 如上面“一页”所示,进口 ./dolly/src/browser.mjs 财务报告和审定财务报表 ./image/index.mjs, (中文(简体) ), 线条 init注册页 coi-serviceworker.js 为东道主服务 没有标题.
  • 为已安装的版本构建图像: 软件包更新后 平分针是其它的(init 在一个空目录中写出新的目录),它 被重新构建。 两个版本的软件包 node_modules 失败的建设, 命名两者.

主机模块

主机模块是一个带有 module.json;其提供者得到它 需要从运行时间到登记册,设备模块导入 其目录外无所出. host/README.md 在存储器中描述 接口.

版本与发布记录

@daugasauron/dolly 共发布 8 个版本,首次发布于 2026/10/30;过去 12 个月发布了 8 个版本。

版本发布日期距今
0.1.5latest2026/11/075 天前
0.1.5-rc.0rc2026/11/066 天前
0.1.42026/10/3112 天前
0.1.4-rc.32026/10/3112 天前
0.1.4-rc.22026/10/3013 天前
0.1.4-rc.12026/10/3013 天前

关于 @daugasauron/dolly 的常见问题

@daugasauron/dolly 是什么?

Dolly的运行时间:在浏览器标签中为hem64提供类似POSIX的用户空间. 用启动器运行图像 () .

如何安装 @daugasauron/dolly?

在项目目录运行 npm install @daugasauron/dolly,或使用 pnpm add / yarn add / bun add。

@daugasauron/dolly 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/daugasauron__dolly 是否存在。

@daugasauron/dolly 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@daugasauron/dolly 可以商用吗?

@daugasauron/dolly 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@daugasauron/dolly 的下载量有多少?

根据 npm 官方下载统计,@daugasauron/dolly 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,718 次,日均约 91 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@daugasauron/dolly 还在维护吗?

最新版本 0.1.5 发布于 2026/11/07(5 天前);至今共发布 8 个版本,其中过去 12 个月发布了 8 个;首次发布于 2026/10/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。