v0.1首个版本化设计基线查看版本范围
Developer

Host API 非正式提议

本页不是 API 规范。这里的名字、边界、签名和优先级都未冻结,应用不得声明或依赖本页内容。

进入正式版本前

每项提议必须先提供具体应用、最小用例、不能由已有 API 实现的证据、生命周期、威胁模型、预算和端到端原型。性能理由必须附基准,不接受“可能更快”作为宿主能力的充分理由。

L1 候选能力

提议 当前未准入原因
GPU 共享硬件残留、跨应用 DoS、命令集和着色器边界仍需独立评审
文件输入与持久写回 临时读取句柄和持久写权限生命周期不同,模块边界与命名未定
window / shell 路径、标题、角标和外链的载荷、预算、审计与回跳安全尚未全部成立
lifecycle 事件模型、卸载收尾窗口和后台阶段未定
permissions 只应查询/观察,还是也负责申请资源,职责边界未定
local network 具体设备应用、连接模型、配对、持久授权和审计需要重新确认
bidirectional relay 具体应用和协议未定;“realtime”只描述性能,不描述资源
notifications 内容形状、交互回调、调度和授权生命周期未定
share 与文件输出、剪贴板写和系统 intent 的边界未定
wake lock 真实应用和电量预算未定
scheduler 后台唤醒粒度、配额、持久登记和生命周期未定
credentials 密钥作用域、断言格式、撤销和设备绑定未定
billing 当前没有真实收入应用,服务端能力也未完成
ads 当前广告只在平台启动确认页展示,不需要 guest API;没有应用内广告用例
AI inference 需要先把平台代理推理与聊天、agent、RAG 等 L2 产品模型分开
analytics 当前实现是 no-op;固定目的地、事件 schema、预算、披露和保留策略未定
background compute 是否真的授予额外执行资源尚未证明,可能只是运行时部署或 L2 任务库
gamepad 轮询/事件模型、连接生命周期和手柄震动归属未定
sensors 类型、采样预算、指纹风险和授权状态机未定
geolocation 精度、持续订阅、后台位置和披露未定
XR 没有具体应用,且会同时涉及姿态、显示、输入和共享硬件
intent 应用间调用、文件关联、用户选择和被调方句柄语义未定
canvas accessibility tree 有明确平台价值,但尚无端到端应用验证其事件与焦点模型

双向中继不是 WebRTC 的同义词

若未来出现多人协作或实时游戏需求,优先评估的是经平台中继的有界双向消息或字节流。它不意味着向 guest 提供 RTCPeerConnection、SDP、ICE、STUN、TURN 或任意 P2P。

WebRTC 可以成为宿主内部实现,但只有在对端、IP 暴露、媒体权限和中继策略都被结构性限制时才可讨论。没有具体应用前,不冻结 realtime 这个名字。

ads 的实际场景

设想中的应用内广告能力是:第三方应用声明一个广告位,平台代持广告拉取、渲染和上报,应用不取得广告网络、用户标识或广告内容。

仓库现在实现的是 /a/:uuid 启动确认页上的平台自营广告位。它位于平台自己的页面,不需要任何 guest API。因此 ads 没有进入 v0.1 的理由;若未来真有应用内广告收入需求,再从 manifest 声明、平台组件和 Host API 三种方案中重新选择最小边界。

L2 guest 库提议

以下内容默认不是 Host API:

建议依赖的 L1 能力
scene canvas / 未来 GPU / asset;场景树、动画、剔除和排序留在 guest
database store;索引、查询、事务组织、CRDT 和页缓存留在 guest
codec asset.read、文件读取;图片、音视频和压缩编解码留在 guest
chat session 未来推理能力;历史、agent、RAG 和工具编排留在 guest
realtime client 未来双向中继;重连、房间、presence 和应用协议留在 guest

性能不足时怎么处理

L2 出现性能瓶颈时,先测量跨边界调用次数、复制量和宿主等待时间,再补足更低层、可批处理的 L1 原语:

  • scene 优先使用每帧一次的二进制 GPU 命令缓冲,而不是把场景树搬入宿主;
  • database 优先补页级批量读写、原子 batch、范围扫描或快照,而不是把 SQL 和索引模型固化进宿主;
  • codec 只有在基准证明 guest 解码不可接受时,才讨论受预算的宿主原生加速接口。

性能优化不得改变 L1/L2 的职责分界,除非新的证据证明 guest 无法获得所需资源或系统效果。

Host API 版本与分层概览Host API v0.1版本非正式提议提议canvas API呈现canvas.getInfo()方法canvas.draw()方法canvas.present()方法canvas.measureText()方法canvas.frame event事件canvas.resize event事件asset API呈现asset.read()方法asset.loadFont()方法playback API呈现playback.open()方法playback.write()方法playback.stop()方法playback.ready event事件playback.ended event事件input API输入input.focus()方法input.pointer event事件input.key event事件input.wheel event事件ime API输入ime.openSession()方法ime.updateState()方法ime.updateGeometry()方法ime.closeSession()方法ime.textUpdate event事件ime.composition event事件ime.formatUpdate event事件ime.characterBoundsRequest event事件capture API输入capture.requestCamera()方法capture.requestMic()方法capture.frame()方法capture.readAudio()方法capture.stop()方法capture.ended event事件store API数据store.get()方法store.put()方法store.delete()方法store.list()方法store.deletePrefix()方法clipboard API数据clipboard.readText()方法clipboard.writeText()方法clipboard.readImage()方法clipboard.writeImage()方法net API网络net.fetch()方法identity API身份identity.status()方法identity.login()方法identity.logout()方法env API平台集成env.snapshot()方法env.change event事件print API平台集成print.open()方法开始调用 Host API指南构建交互式绘图应用指南构建自绘文本编辑器指南管理媒体采集与播放指南组织本地数据与同步指南