Files
endorphin-tessera-gui/src/README.md

5.8 KiB
Raw Permalink Blame History

Tessera 源码导航

本体代码已补充中文模块、类型、函数与关键流程注释;建议按注释阅读索引和逐文件说明从启动、运行时发布和视觉协议依次阅读。

整体设计和当前进展从 架构导览 开始;本轮每个文件的迁移对应见 逐文件清单。

main.rs 只负责组合启动,并保留 crate 私有模块路径别名。五组目录仍在同一个 binary crate 中,不是严格单向分层。

目录 责任
shell/ 原生工作区、窗口输入、标签、开发工具和独立宿主管理控件
runtime/ 本机 API、串行 VM 执行、事件和异步任务
model/ 托管对象、绑定、Mount、窗口语义、依赖与发布值
render/ 几何、布局、source/native 视觉协议、绘制、命中、字体和软件渲染
bridge/ Endor 类型/方法与宿主能力及展示刷新之间的连接

shell

模块 职责
activity 有界 HTTP 活动记录与允许的头部预览
app GUI 事件循环、窗口/viewport、输入与 chrome 调度
clipboard 原生 UTF-8 剪贴板适配
developer_tools 四个工具 Page 的状态、焦点与管理交互协调
native_chrome macOS 原生按钮对齐和工具栏双击系统动作
sources 默认断开的云文件 provider 接口及工作区
system_ui 独立宿主管理控件、交互和主题
tabs 页面注册表的不可变 ID、标题和当前选择投影
sidebar 页面/开发工具入口、收起状态与最小宿主控制区

runtime

模块 职责
api HTTP 请求路由、队列、请求观察和响应;worker/指南拆为子模块
endor_host 候选/活跃 VM、编译执行、增量刷新、清理和诊断
endor_script 组织 Aster Script/Module 输入及原始源码范围
events 原生输入的有界 loopback 传输
event_dispatch 托管事件、订阅和 capture/target/bubble 分发
io_tasks 有界文件/HTTP provider、纯数据完成消息和取消
tasks 托管 Task、owner/key 取消和协作任务调度
vm_sequence 共享 VM 调用序列及同帧迭代驱动

model

模块 职责
binding 属性依赖、只读计算与托管绑定
block Block/Cell/Data 语义、稳定子 slot 和共享赋值
document NamespaceState、RenderDocument、Frame、发布校验与原生命令
mount 每次展示出现的托管上下文、生命周期及弱索引
object_list 托管结果集合的类型封装与只读访问
presentation 逐窗口布局、Mount、缓存、读依赖和失效状态
protocols Visual/EventTarget/Children/Presentable 能力契约安装
snapshot 变化依赖和不可变视觉提取缓存
window 托管 Window、Page registry、命令及生命周期

render

模块 职责
display_list 原生绘制原语和颜色
geometry 点和矩形值
layout 原生测量、排列、出现几何及预算
native_visual 托管原生视觉协议、值转换和签名检查
scene 页面视角、可见裁剪、侧栏和开发工具画面合成
page 四种页面空间、约束、平移缩放及正逆坐标变换
scroll 逐 Mount 偏移、嵌套滚动和剪裁投影
software_renderer 软件光栅化、抗锯齿覆盖和嵌套剪裁
source_hit 源/原生命中协议与匹配目标
source_layout 源 measure/arrange、约束、挂起工作和测量缓存
source_paint 源 paint 调用、受限命令转换和依赖
text 系统字体、shaping、字形和测量缓存

bridge

模块 职责
ui_bridge Endor 宿主类型、窗口展示会话、布局/绘制发布协调

主要入口和运行约束

  • HTTP 路由:runtime/api.rs;worker:runtime/api/worker.rs;在线指南:runtime/api/guide.rs。
  • Bridge 安装:bridge/ui_bridge/bootstrap.rs;Block 调用:calls.rs;签名:signatures.rs;不可变树:tree.rs。
  • 默认页:bridge/ui_bridge/start_page.endor;Console/Sources/Network/Settings:shell/developer_tools/。
  • 页面模式与宿主边界见 页面空间说明;相机输入:bridge/ui_bridge/page_input.rs。
  • 现有 API 和宿主测试:runtime/api/tests.rs、runtime/endor_host/tests.rs;其他模块中也保留原单元测试。

VM 和托管根只由执行 worker 操作。原生窗口收到已发布值,不收到 ObjectRef。完整 PUT 成功才接替活跃程序;Console 保留实际 VM;失败和清理语义见架构文档。

当前开发与验证在本机使用原生 Rust 工具链完成:格式、现有测试、Clippy、原生构建和人工运行检查。CI/CD 工作流与 Docker 检查入口已移除;具体命令见 项目验证说明。历史验收记录只代表当时实际执行的检查。