92 lines
5.8 KiB
Markdown
92 lines
5.8 KiB
Markdown
# Tessera 源码导航
|
||
|
||
本体代码已补充中文模块、类型、函数与关键流程注释;建议按[注释阅读索引和逐文件说明](../docs/code-comments.md)从启动、运行时发布和视觉协议依次阅读。
|
||
|
||
整体设计和当前进展从 [架构导览](../docs/architecture/README.md) 开始;本轮每个文件的迁移对应见 [逐文件清单](../docs/architecture/file-map.md)。
|
||
|
||
`main.rs` 只负责组合启动,并保留 crate 私有模块路径别名。五组目录仍在同一个 binary crate 中,不是严格单向分层。
|
||
|
||
| 目录 | 责任 |
|
||
| --- | --- |
|
||
| `shell/` | 原生工作区、窗口输入、标签、开发工具和独立宿主管理控件 |
|
||
| `runtime/` | 本机 API、串行 VM 执行、事件和异步任务 |
|
||
| `model/` | 托管对象、绑定、Mount、窗口语义、依赖与发布值 |
|
||
| `render/` | 几何、布局、source/native 视觉协议、绘制、命中、字体和软件渲染 |
|
||
| `bridge/` | Endor 类型/方法与宿主能力及展示刷新之间的连接 |
|
||
|
||
## shell
|
||
|
||
| 模块 | 职责 |
|
||
| --- | --- |
|
||
| [activity](shell/activity.rs) | 有界 HTTP 活动记录与允许的头部预览 |
|
||
| [app](shell/app.rs) | GUI 事件循环、窗口/viewport、输入与 chrome 调度 |
|
||
| [clipboard](shell/clipboard.rs) | 原生 UTF-8 剪贴板适配 |
|
||
| [developer_tools](shell/developer_tools.rs) | 四个工具 Page 的状态、焦点与管理交互协调 |
|
||
| [native_chrome](shell/native_chrome.rs) | macOS 原生按钮对齐和工具栏双击系统动作 |
|
||
| [sources](shell/sources.rs) | 默认断开的云文件 provider 接口及工作区 |
|
||
| [system_ui](shell/system_ui/mod.rs) | 独立宿主管理控件、交互和主题 |
|
||
| [tabs](shell/tabs.rs) | 页面注册表的不可变 ID、标题和当前选择投影 |
|
||
| [sidebar](shell/sidebar.rs) | 页面/开发工具入口、收起状态与最小宿主控制区 |
|
||
|
||
## runtime
|
||
|
||
| 模块 | 职责 |
|
||
| --- | --- |
|
||
| [api](runtime/api.rs) | HTTP 请求路由、队列、请求观察和响应;worker/指南拆为子模块 |
|
||
| [endor_host](runtime/endor_host.rs) | 候选/活跃 VM、编译执行、增量刷新、清理和诊断 |
|
||
| [endor_script](runtime/endor_script.rs) | 组织 Aster Script/Module 输入及原始源码范围 |
|
||
| [events](runtime/events.rs) | 原生输入的有界 loopback 传输 |
|
||
| [event_dispatch](runtime/event_dispatch.rs) | 托管事件、订阅和 capture/target/bubble 分发 |
|
||
| [io_tasks](runtime/io_tasks.rs) | 有界文件/HTTP provider、纯数据完成消息和取消 |
|
||
| [tasks](runtime/tasks.rs) | 托管 Task、owner/key 取消和协作任务调度 |
|
||
| [vm_sequence](runtime/vm_sequence.rs) | 共享 VM 调用序列及同帧迭代驱动 |
|
||
|
||
## model
|
||
|
||
| 模块 | 职责 |
|
||
| --- | --- |
|
||
| [binding](model/binding.rs) | 属性依赖、只读计算与托管绑定 |
|
||
| [block](model/block.rs) | Block/Cell/Data 语义、稳定子 slot 和共享赋值 |
|
||
| [document](model/document.rs) | NamespaceState、RenderDocument、Frame、发布校验与原生命令 |
|
||
| [mount](model/mount.rs) | 每次展示出现的托管上下文、生命周期及弱索引 |
|
||
| [object_list](model/object_list.rs) | 托管结果集合的类型封装与只读访问 |
|
||
| [presentation](model/presentation.rs) | 逐窗口布局、Mount、缓存、读依赖和失效状态 |
|
||
| [protocols](model/protocols.rs) | Visual/EventTarget/Children/Presentable 能力契约安装 |
|
||
| [snapshot](model/snapshot.rs) | 变化依赖和不可变视觉提取缓存 |
|
||
| [window](model/window.rs) | 托管 Window、Page registry、命令及生命周期 |
|
||
|
||
## render
|
||
|
||
| 模块 | 职责 |
|
||
| --- | --- |
|
||
| [display_list](render/display_list.rs) | 原生绘制原语和颜色 |
|
||
| [geometry](render/geometry.rs) | 点和矩形值 |
|
||
| [layout](render/layout.rs) | 原生测量、排列、出现几何及预算 |
|
||
| [native_visual](render/native_visual.rs) | 托管原生视觉协议、值转换和签名检查 |
|
||
| [scene](render/scene.rs) | 页面视角、可见裁剪、侧栏和开发工具画面合成 |
|
||
| [page](render/page.rs) | 四种页面空间、约束、平移缩放及正逆坐标变换 |
|
||
| [scroll](render/scroll.rs) | 逐 Mount 偏移、嵌套滚动和剪裁投影 |
|
||
| [software_renderer](render/software_renderer.rs) | 软件光栅化、抗锯齿覆盖和嵌套剪裁 |
|
||
| [source_hit](render/source_hit.rs) | 源/原生命中协议与匹配目标 |
|
||
| [source_layout](render/source_layout.rs) | 源 measure/arrange、约束、挂起工作和测量缓存 |
|
||
| [source_paint](render/source_paint.rs) | 源 paint 调用、受限命令转换和依赖 |
|
||
| [text](render/text.rs) | 系统字体、shaping、字形和测量缓存 |
|
||
|
||
## bridge
|
||
|
||
| 模块 | 职责 |
|
||
| --- | --- |
|
||
| [ui_bridge](bridge/ui_bridge.rs) | 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/`。
|
||
- 页面模式与宿主边界见 [页面空间说明](../docs/page-surfaces.md);相机输入:`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 检查入口已移除;具体命令见 [项目验证说明](../README.md#validation)。历史验收记录只代表当时实际执行的检查。
|