5.8 KiB
5.8 KiB
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 检查入口已移除;具体命令见 项目验证说明。历史验收记录只代表当时实际执行的检查。