生态桌面应用
言台架构
言台 0.1.0 的 ABI v2、事件、文字、绘制与资源生命周期边界。
言台把三套桌面系统收敛为版本化的平台原语。公开言序包装层调用一个 ABI v2 原生模块;原生模块使用winit 0.30创建窗口和接收输入,使用softbuffer呈现 CPU 像素缓冲、tiny-skia栅格化二维图形、cosmic-text完成字体回退、整形、测量和命中。
言序应用/言界
│ 资源句柄、原生值、事件批次、YXDR 帧
▼
言台言序包装层
│ ABI v2(34 项操作)
▼
Rust 公共后端
├─ winit:窗口、显示器、键盘、指针、IME、拖放
├─ softbuffer + tiny-skia:表面与 CPU 二维绘制
├─ cosmic-text:字体匹配、整形、测量、命中、字形
└─ arboard / rfd:剪贴板与文件对话框协议
- 平台 ABI 主版本为
2;不匹配的主版本拒绝加载。 - 事件协议为
1.1,覆盖 36 种应用、窗口、输入、IME、拖放和系统事件。 - 每批事件有数量和字节上限;队列上限为 4096,高频状态在入队前合并。
- 绘制协议
YXDR 1.1使用一个完整二进制帧,支持清空、裁剪、变换、矩形、圆角、直线、圆、路径、阴影、文字、字形、图片、图层和透明度。 - 协议解码器拒绝损坏缓冲、超限数据和未知主版本;可忽略兼容的未知次版本字段。
所有权与线程
应用是资源树根。窗口拥有表面和窗口级回调,字体和图片由应用持有;句柄包含代际,释放后的旧句柄不能访问复用槽位。关闭按子到父顺序执行且可重复调用。原生线程只能把事件投递到有界队列,所有言序回调都在 VM 所有者线程泵出。