Skip to content

言窗 1.0.0

Latest

Choose a tag to compare

@LiuXiu233 LiuXiu233 released this 18 Jul 09:31
135fcbf

言窗 1.0.0 发布说明

摘要

言窗 1.0.0 建立首条稳定桌面 GUI 版本线。公开 API 使用中文言序对象,原生后端通过
ABI v2 封装 eframe/egui 与 winit,并为 Windows、macOS、Linux 的 x86-64 和 ARM64
定义精确制品目标。最低言序版本为 1.1.12。

主要能力

  • 应用生命周期、主题、多窗口、位置、DPI、全屏、置顶和尺寸约束;
  • 纵向、横向、网格、层叠和双向滚动布局,可递归嵌套并显式关闭;
  • 文字、按钮、输入、选择、列表、标签页、菜单、图片、进度、滑块和画布;
  • 键盘、鼠标、焦点、变化、窗口、拖放、自定义事件和定时器;
  • 中文与扩展 Unicode 字体回退、平台 IME、可访问名称和描述;
  • 剪贴板、打开/保存/多选/目录对话框及独立权限;
  • 结构化错误详情、调试资源快照和稳定 GUI_* 代码。

稳定与安全

后端先验证 ABI 表大小,再解码有界值;借用句柄不会按自有资源释放。资源图、回调绑定、
图片解码和画布均有硬上限。资源绑定创建线程和事件循环,关闭父资源会清理子树。Rust
panic 与模型锁中毒被隔离,清理路径仍可释放回调和资源。

当前 quick-xml 安全公告通过锁定的 Wayland scanner 补丁修复。直接依赖版本和许可证
THIRD_PARTY.md

兼容与破坏性变化

  • 最低言序由 1.1.7 提升至 1.1.12;
  • 包版本和消费范围由 0.1 改为 1.0 / ^1.0
  • 只提供 ABI v2 制品,旧动态库不可复用;
  • 配置类型、尺寸、布局、控件值和计时器范围改为严格拒绝;
  • 跨线程、跨事件循环和关闭后资源访问不再容忍;
  • 原生稳定码应通过错误详情读取。

迁移步骤见 MIGRATION.md,完整矩阵见仓库根
COMPATIBILITY.md

权限

能力 权限
窗口与事件循环 图形界面
剪贴板读写 剪贴板
文件和目录对话框 文件对话框

应用只应授予实际使用的权限。文件对话框只返回选择结果,不会替应用读取文件。

本地验证记录

2026-07-18 在 aarch64-apple-darwin 使用言序 1.1.12(提交
0e66486b4723ba96ed0ee67a43f301a03da062d0)实际完成:

  • 19 项 Rust 单元测试通过;
  • Rust 格式检查与全目标、全特性 Clippy -D warnings 通过;
  • release 后端构建和 ABI v2 当前平台清单生成通过;
  • 9 个 GUI 示例类型检查通过;
  • 3 份公共消费规格、38 个断言通过;
  • 27 个公开声明、127 个方法的 JSON/Markdown API 无漂移;
  • macOS ARM64 真实窗口自动关闭冒烟返回 0;
  • 当前本机制品经固定标识、无时间戳临时签名后大小为 8,977,696 字节,SHA-256 为
    c4fe80eaaaf119f1ab9cd2d4b7052c69a5fafb3242c97f990c2315abf9cc45eb

六目标制品仍须由发布 CI 在各自原生托管机重新构建、验证并汇总;本地 ARM64 macOS
结果不替代其他五个目标的 CI 结果。

已知限制

  • 不支持 Linux musl、WebAssembly、移动平台或 32 位目标;
  • 非零布局伸缩尚未实现;
  • 图片仅支持受限 PNG/JPEG;
  • 高频事件可能合并,定时器精度由平台调度决定;
  • 渲染像素和系统对话框外观不保证跨平台完全一致;
  • 1.0.0 不给出跨设备统一 FPS 或内存承诺。

官方六目标制品

标签 CI:29638875433

目标 SHA-256 字节
x86_64-unknown-linux-gnu 5157f446541a4f1950251bdb178ef70f984b0e8286ac5bf727b06175a6b8f133 19,026,032
aarch64-unknown-linux-gnu e8308186226dca1dc0c2110eae518937f27d5f82998f3d453ec7977e7d2f26aa 17,589,120
x86_64-apple-darwin 932a0140881bca7487a4c79dc601eb33e27e75a0e3e98a33e1f0b7322b36f104 9,554,816
aarch64-apple-darwin d52c51a817c2877638e75e99ddb0039033aae5ba21af3714793ddaf7ebe5390b 8,567,552
x86_64-pc-windows-msvc 45e541825eff92613b3114fcb4c74fa9c1894f3d9bae5963ea9e836109d06985 8,710,144
aarch64-pc-windows-msvc 241f5b066844d04ecd8bb4755205ef60da416e6ddb7891c0c0ad8718ff11df78 7,228,416

聚合归档 yanxu-gui-six-targets.tar.gz 为 28,404,376 字节,SHA-256 为
2fddeb3db155f6811ea5a0aab2d7dbd567a62ab44da38db2a6b08cf43e32f3e4。

两份 Linux GNU 制品的最高所需符号版本为 glibc 2.39。Linux/Windows 二进制保留
上游 glutin 生成绑定中的非敏感 CI 源路径;这不影响加载或摘要校验,但不声称跨构建目录
逐字节可复现。两份 macOS dylib 使用 @rpath/libyanxu_gui_native.dylib 安装名并通过
严格临时签名验证。

注册表专用归档

yanxu-gui-1.0.0-package.tar.gz复用上述六目标制品和根包清单,只排除示例与测试目录中的
两个嵌套项目清单,以满足包解析器对唯一根清单的安全要求。归档大小为 28,378,205 字节,
SHA-256 为 b25277058b090043f4fe816d18d6af4f8f8442426fc175ddd71576466cc9b774
同名 .sha256 文件随 Release 提供。

公开只读索引为
https://get.yanxu.dev/packages/v1/yanxu-gui/index.json。索引固定到本 Release 资产及精确
摘要,不提供上传、登录或写入能力。