From cf8c6912ecf63a39eb01cbe7314f90ef2bfb2313 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Tue, 3 Nov 2026 23:19:38 +0800 Subject: [PATCH] =?UTF-8?q?chore(workspace):=20M118=20=E2=80=94=E2=80=94?= =?UTF-8?q?=20crates/app=20=E9=80=80=E5=87=BA=E9=BB=98=E8=AE=A4=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=EF=BC=8C=E5=8F=91=E5=B8=83=E6=94=B9=E6=89=93=20iced?= =?UTF-8?q?=20bin=EF=BC=88Slint=20=E7=89=88=E5=81=9C=E5=8F=91=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit M118(D26):Slint 退役树 `crates/app` 不再进 workspace。目录与源码原样保留(不删一个文件), 只是配置上不再可编。 - 根 Cargo.toml:`[workspace] exclude = ["crates/app"]`。摘掉的是整棵 slint 1.18 + usvg 0.48 依赖树(本机单路冷编 ≈14 分钟;并行超配时表现为 rustc 退 1 且零诊断,见踩坑记录 p2 T7)。 Cargo.lock 由 cargo 自己重算:8639 → 6343 行(-2389/+93),`name = "slint"` 1→0、 `name = "i-slint` 11→0、`name = "slint-build"` 1→0。锁必须一起提交:旧锁配 `--locked` 会直接 `cannot update the lock file`(release.yml 与 ci.yml 的冒烟都带 `--locked`)。 - ci.yml:clippy/test/build 的 `--workspace` 自然不再覆盖 unlucky-app;runtime-smoke(Linux 与 macOS 探针)打的是 Slint 版 `--bin unlucky-launcher`,该 bin 已不存在 → 换成 iced 版 `unlucky-launcher-iced`(它的 cli.rs 照抄 Slint 版口径,`--data-dir` 仍被接受)。 - release.yml:**Slint 版停发**。旧写法 `--bin unlucky-launcher` 打的是 crates/app 的 bin, 也就是说流水线一直在发 Slint 版;改为 `--bin unlucky-launcher-iced --bin ull`,Windows 导入表自检的 EXE 指向构建产物 `unlucky-launcher-iced.exe`。对外产物文件名不变。 - make_artifacts.py:拆成 `LAUNCHER_BIN = "unlucky-launcher-iced"`(找产物)与 `LAUNCHER_ASSET = "unlucky-launcher"`(落盘名),tar 内文件名/权限随之按对外名走。 - guards.yml / README(中英)/ packaging/README.md:逐条写明排除后的覆盖口径,历史实现段落 全部保留并加限定语(不提供构建方式,也不暗示自救)。 门禁:fmt exit 0;clippy --workspace --all-targets -j 4 -- -D warnings exit 0(44.6s); check --workspace --all-targets exit 0(5m20s,slint 命中 0 行);cargo deny check exit 0。 --- .github/workflows/ci.yml | 34 +- .github/workflows/guards.yml | 18 + .github/workflows/release.yml | 13 +- Cargo.lock | 2424 +-------------------------------- Cargo.toml | 13 +- README.md | 67 +- README.zh-CN.md | 57 +- packaging/README.md | 22 +- packaging/make_artifacts.py | 12 +- 9 files changed, 230 insertions(+), 2430 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d08d205..d335915 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,6 +3,12 @@ name: CI # 主干门禁:fmt / clippy / test / build 双平台矩阵。 # 架构守门(core 零 UI、文件 ≤400 行、依赖许可)见 guards.yml。 # 平台基线 Win10+(标准工具链产物),平台矩阵见 AGENTS.md §7。 +# +# M118(D26):根 Cargo.toml 已 `exclude = ["crates/app"]`(Slint 退役树,源码原样保留)。 +# 所以本文件里所有 `--workspace` 都**不再**覆盖 `unlucky-app`:CI 不再编 slint 1.18 + usvg 0.48 +# 那棵依赖树(本机单路冷编 ≈14 分钟;并行超配时表现为 `rustc` 退 1 且零诊断, +# 见 DevDocs/00-踩坑记录-p2.md T7)。历史实现只作源码参考,**没有构建方式**(见 README: +# 它的 manifest 整份是 workspace 继承写法,离开 workspace 后连解析都过不了)。 on: push: @@ -38,7 +44,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - - name: Linux 图形栈构建依赖(winit / femtovg 编译期需要) + - name: Linux 图形栈构建依赖(winit / wgpu 编译期需要) if: runner.os == 'Linux' run: | sudo apt-get update @@ -49,6 +55,8 @@ jobs: with: components: clippy - uses: Swatinem/rust-cache@v2 + # `--workspace` 现在是 8 个 crate,不含 `unlucky-app`(M118 的 workspace exclude), + # 所以这条命令不会拉起 slint / usvg / i-slint-*。 - run: cargo clippy --workspace --all-targets -- -D warnings test: @@ -69,6 +77,9 @@ jobs: libwayland-dev libxcb1-dev - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 + # 同 clippy:`--workspace` 不含 `unlucky-app`(M118),Slint 退役树不再被 `--all-targets` 拉起。 + # 也因此**不要**再写 `--exclude unlucky-app`:它已不是成员,那面旗子只会打一条 + # `excluded package(s) … not found in workspace` 的警告然后空转(实测 exit 0,不报错)。 - run: cargo test --workspace --all-targets build: @@ -89,14 +100,19 @@ jobs: libwayland-dev libxcb1-dev - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 + # 同上:`--workspace` 不含 `unlucky-app`(M118)。被摘掉的正是 release 档 + # (lto=fat + codegen-units=1)最贵的那棵 slint + usvg 树。 - run: cargo build --workspace --release # 运行时冒烟(M62):Linux 上**真渲染一帧**,补上「能编译 ≠ 能跑」的空白。 # 上面四个 job 都只证明代码编得过、测得过,从不创建真实图形窗口;本 job 在 Xvfb 虚拟显示里 - # 启动 GUI 进程,让 Slint 软件渲染器把当前场景渲进内存像素缓冲并编码成 PNG,再对**像素本身** + # 启动 GUI 进程,让软件渲染器把当前场景渲进内存像素缓冲并编码成 PNG,再对**像素本身** # 断言(不是只看退出码:窗口起来了但一帧空白同样是「退出码 0」)。 # 诚实边界:证明「Linux 上真能跑出非空白的一帧」,**不**证明视觉正确——视觉靠人眼看 artifact。 - # 本 job 绑死 Slint Window::take_snapshot;迁 iced 后必须提供等价的离屏截图通道,否则本 job 静默退化成「能起进程」。 + # M118(D26):这里原本绑死 Slint 的 `Window::take_snapshot`,打的是 Slint 版 bin + # `unlucky-launcher`;`crates/app` 退出 workspace 后那个 bin 不再存在,改用 iced 版 + # `unlucky-launcher-iced` 自带的 `--screenshot` 通道(`crates/app-iced/src/shot/`)。 + # 命令行参数刻意不动:iced 的 `cli.rs` 就是照 Slint 版的口径写的,`--data-dir` 也仍被接受(忽略)。 runtime-smoke: name: runtime smoke (ubuntu x64, xvfb) runs-on: ubuntu-latest @@ -116,13 +132,14 @@ jobs: - uses: Swatinem/rust-cache@v2 # 用 debug 而不是 release:本 job 验的是「运行时渲染通路能通」,不是优化后二进制的行为; # release 的 lto="fat" + codegen-units=1 会把这一步拖到十几分钟却不带来额外证据。 - - run: cargo build --bin unlucky-launcher --locked + # M118:bin 从 Slint 版 `unlucky-launcher` 换成 iced 版(见上方 job 注释)。 + - run: cargo build --bin unlucky-launcher-iced --locked - name: 在 Xvfb 里跑一帧并截图(退出码非 0 即失败) run: | set -o pipefail # 当前没有管道(死行),保留是为将来加管道时先有失败传播 mkdir -p "$RUNNER_TEMP/smoke/data" xvfb-run -a --server-args="-screen 0 1280x1024x24" \ - target/debug/unlucky-launcher --software-renderer \ + target/debug/unlucky-launcher-iced --software-renderer \ --screenshot "$RUNNER_TEMP/smoke/runtime-smoke.png" \ --data-dir "$RUNNER_TEMP/smoke/data" - name: 断言 PNG 存在且非空白(尺寸 / 唯一色数 / 亮度σ / 强边缘占比) @@ -137,10 +154,11 @@ jobs: # macOS 槽位探针(M62):**默认不在 PR 上跑**,只有手动 dispatch 才触发。 # 之所以是探针而不是常驻槽位:官方 macOS runner 处于 LaunchDaemon 上下文,没有登录的 - # WindowServer 会话,Slint 的 winit backend 创建窗口大概率直接失败;而 worker 禁 push, + # WindowServer 会话,GUI 的 winit backend 创建窗口大概率直接失败;而 worker 禁 push, # 本机也没有 macOS,这条路径**尚无任何实测证据**——不拿未验证的 job 卡住主干门禁。 # 首跑结论决定去留:绿 → 去掉 if/continue-on-error 升为常驻槽位;红 → 按 D26 归入 iced # 重写后再规划,并把错误原文贴进 progress 文档(不静默删 job、不吞失败原因)。 + # M118:bin 与 Linux 那条一样,从 Slint 版换成 iced 版(`unlucky-launcher-iced`)。 runtime-smoke-macos: name: runtime smoke (macos arm64, probe) if: github.event_name == 'workflow_dispatch' @@ -153,12 +171,12 @@ jobs: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - - run: cargo build --bin unlucky-launcher --locked + - run: cargo build --bin unlucky-launcher-iced --locked - name: 尝试截图(macOS 没有 X 服务器,直接跑;失败即为结论) run: | set -o pipefail # 当前没有管道(死行),保留是为将来加管道时先有失败传播 mkdir -p "$RUNNER_TEMP/smoke/data" - target/debug/unlucky-launcher --software-renderer \ + target/debug/unlucky-launcher-iced --software-renderer \ --screenshot "$RUNNER_TEMP/smoke/runtime-smoke.png" \ --data-dir "$RUNNER_TEMP/smoke/data" - name: 断言 PNG 存在且非空白 diff --git a/.github/workflows/guards.yml b/.github/workflows/guards.yml index d75a289..81566eb 100644 --- a/.github/workflows/guards.yml +++ b/.github/workflows/guards.yml @@ -7,6 +7,16 @@ name: Guards # 4. file-size —— 全仓代码/文档单文件 ≤400 行(用户硬约束) # 5. licenses —— cargo-deny:许可证白名单 + GPL 依赖拦截 + 供应链来源校验 # 6. unsafe-scope —— 全仓 `allow(unsafe_code)` 的文件集合必须恰好只有一个(D36 / M91) +# +# M118(D26):根 Cargo.toml 已 `exclude = ["crates/app"]`(Slint 退役树)。逐条核对过本文件, +# **没有**任何一条守卫以 `--workspace` 为前提,所以排除不会让它们空转: +# ① core-no-ui / presenter-no-ui / design-zero-dep —— 「manifest 文本 + `cargo tree -p `」 +# 口径,被守的 crate 仍是 workspace 成员,依赖树与排除前逐行一致; +# ② file-size / unsafe-scope —— 走 `git ls-files` / `git grep`,与构建图无关,**仍然覆盖 +# `crates/app/**`**(源码还在仓库里,就还得守它的行数与 unsafe 落点); +# ③ licenses —— 唯一走 workspace 依赖图的守卫。排除后 Slint 那棵树不再进图(实测 `cargo deny +# list` 里 `slint*` / `i-slint-*` 为 0 个),这与「不再随任何产物发布」一致;代价是它的许可证 +# 不再被本门禁审 —— 真要重新纳入发布,得先把它加回 workspace,门禁随之恢复。 on: push: @@ -48,6 +58,9 @@ jobs: # presenter 是 Slint 版(crates/app)与 iced 版(crates/app-iced)共用的唯一业务层(D26)。 # 一旦 slint/iced/winit 被拉进来,分层就废了,而编译与单测仍会全绿 —— 所以必须由 CI 守。 + # M118 之后 Slint 版已被 workspace `exclude`,但本条**照样守得住**:它查的是 presenter 自己的 + # manifest 与 `cargo tree -p unlucky-presenter`,与「谁在消费 presenter」无关;依赖树里一旦出现 + # slint/iced/winit 仍会当场红。名单里的 slint 继续留着,就是为了防「把 UI 依赖偷偷塞进宿主层」。 # 与 core-no-ui 同样是「依赖表 + cargo tree」双查,名单保持一致;脚本刻意复制而非抽公共脚本, # 理由是 CI 守门脚本自身挂掉的排查成本远高于这几行重复。 presenter-no-ui: @@ -356,4 +369,9 @@ jobs: - uses: EmbarkStudios/cargo-deny-action@v2 with: # 只跑许可/禁用/来源三类,advisories 由后续安全轮次单独接管 + # M118:cargo-deny 走 **workspace 依赖图**,`crates/app` 被 exclude 后 Slint 那棵树不再进图 + # (实测 `cargo deny list` 里 `slint*` / `i-slint-*` 命中 0 个),所以本门禁不再审 Slint 的 + # RF-2.0 许可 —— 与「它不再随任何产物发布」一致。这不是回退:`deny.toml` 里为 Slint 留的 + # allow 条目**故意没删**(删它得先确认没有别的路径重新引入),当前等于一条死条目。 + # 若将来把 `crates/app` 加回 workspace,本门禁的覆盖会自动恢复。 command: check licenses bans sources diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bbf467b..ca45d84 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -132,6 +132,13 @@ jobs: exit 1 fi + # M118(D26):**Slint 版停发**。旧写法 `--bin unlucky-launcher` 打的是 `crates/app` + # (Slint 退役树)的 bin —— 也就是说这条流水线一直在发 Slint 版二进制,而 D26 早已把 + # iced 定为产品 UI。现在 GUI 来源只有 `unlucky-launcher-iced`;`crates/app` 也已在根 + # Cargo.toml 被 `exclude`,不参与任何 workspace 构建(它连 `--manifest-path` 都编不了)。 + # 对外产物文件名**不变**(`unlucky-launcher--.*`):改名发生在 + # `packaging/make_artifacts.py` 内部(`LAUNCHER_BIN` 找 iced 产物、落盘用对外名), + # 下载链接 / SHA256SUMS / README 都不用跟着漂。 - name: cargo build --release --locked shell: bash env: @@ -143,14 +150,16 @@ jobs: if [ -n "$TARGET" ]; then target_args+=(--target "$TARGET") fi - cargo build --release --locked "${target_args[@]}" --bin unlucky-launcher --bin ull + cargo build --release --locked "${target_args[@]}" --bin unlucky-launcher-iced --bin ull - name: Windows 单文件自检(导入表不得出现 VC++ 可再发行 DLL) if: runner.os == 'Windows' shell: bash env: # 跨槽位的关键点:产物在 target//release 而不是 target/release。 - EXE: ${{ matrix.build_dir }}/unlucky-launcher.exe + # M118:校验的是**构建产物**(iced bin 的原始文件名)。对外名 `unlucky-launcher` + # 由 packaging/make_artifacts.py 在落盘时才换上,那一步之后才存在。 + EXE: ${{ matrix.build_dir }}/unlucky-launcher-iced.exe run: | set -euo pipefail # +crt-static 是否真的生效,只看导入表:出现 VCRUNTIME/MSVCP/msvcr/ucrtbase 说明还得装 diff --git a/Cargo.lock b/Cargo.lock index 0526e1e..30547b5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,114 +18,6 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" -[[package]] -name = "accesskit" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b7f7f85a7e5f68090000ed7622545829afd484d210358702ae4cb97dd0c320" -dependencies = [ - "uuid", -] - -[[package]] -name = "accesskit_atspi_common" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023da0e5097f46df7092d5280b02efb9bbf8d93298daeced42652463e357d636" -dependencies = [ - "accesskit", - "accesskit_consumer", - "atspi-common", - "phf", - "serde", - "zvariant", -] - -[[package]] -name = "accesskit_consumer" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" -dependencies = [ - "accesskit", - "hashbrown 0.16.1", -] - -[[package]] -name = "accesskit_ios" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "750c4e9f6ce888dfe8a10c0f1b5ceb646a7854fd46579d74919219d1bb314083" -dependencies = [ - "accesskit", - "accesskit_consumer", - "hashbrown 0.16.1", - "objc2 0.5.3", - "objc2-foundation 0.2.2", - "objc2-ui-kit 0.2.2", -] - -[[package]] -name = "accesskit_macos" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" -dependencies = [ - "accesskit", - "accesskit_consumer", - "hashbrown 0.16.1", - "objc2 0.5.3", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "accesskit_unix" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e156ed3802e35eefe894ef2671bc6c889303d8a7e110b5e1b48f504b91362f" -dependencies = [ - "accesskit", - "accesskit_atspi_common", - "async-channel", - "async-executor", - "async-task", - "atspi", - "futures-lite", - "futures-util", - "serde", - "zbus", -] - -[[package]] -name = "accesskit_windows" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106c2b961215864d1c2e703ee63269c25c4e80a577ffb2c1017b9c17dcdf83a1" -dependencies = [ - "accesskit", - "accesskit_consumer", - "hashbrown 0.16.1", - "static_assertions", - "windows 0.62.2", - "windows-core 0.62.2", -] - -[[package]] -name = "accesskit_winit" -version = "0.33.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5b41e63a69f36d9f1f41e70464c7e5f72eee485ef26aab19f0b4f86e6c0a84c" -dependencies = [ - "accesskit", - "accesskit_ios", - "accesskit_macos", - "accesskit_unix", - "accesskit_windows", - "raw-window-handle", - "winit", -] - [[package]] name = "adler2" version = "2.0.1" @@ -154,12 +46,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "android-activity" version = "0.6.1" @@ -203,50 +89,6 @@ dependencies = [ "libc", ] -[[package]] -name = "annotate-snippets" -version = "0.12.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a5b0a5ab8561c603f16c3b78c24a386b1f70e7fc1b1b1e8c15738828e4a176" -dependencies = [ - "anstyle", - "memchr", - "unicode-width", -] - -[[package]] -name = "anstyle" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" - -[[package]] -name = "arboard" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb9553e62312c8756a5979254fc6d7da8bbeb5986a1e17037fab932f7037917" -dependencies = [ - "clipboard-win", - "log", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-foundation 0.3.2", - "parking_lot", - "percent-encoding", - "windows-sys 0.61.2", - "wl-clipboard-rs", - "x11rb", -] - -[[package]] -name = "arc-swap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380962b3d93b99642e50b9febf72c071e97e8b32d86eae9cf4ef582bb960ae6e" -dependencies = [ - "rustversion", -] - [[package]] name = "arrayref" version = "0.3.9" @@ -433,43 +275,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atspi" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77886257be21c9cd89a4ae7e64860c6f0eefca799bb79127913052bd0eefb3d" -dependencies = [ - "atspi-common", - "atspi-proxies", -] - -[[package]] -name = "atspi-common" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c5617155740c98003016429ad13fe43ce7a77b007479350a9f8bf95a29f63d" -dependencies = [ - "enumflags2", - "serde", - "static_assertions", - "zbus", - "zbus-lockstep", - "zbus-lockstep-macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "atspi-proxies" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2230e48787ed3eb4088996eab66a32ca20c0b67bbd4fd6cdfe79f04f1f04c9fc" -dependencies = [ - "atspi-common", - "serde", - "zbus", -] - [[package]] name = "autocfg" version = "1.5.1" @@ -563,52 +368,13 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" -[[package]] -name = "bincode" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" -dependencies = [ - "serde", - "unty", -] - -[[package]] -name = "bindgen" -version = "0.72.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -dependencies = [ - "bitflags 2.13.2", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.3", - "shlex 1.3.0", - "syn 2.0.119", -] - [[package]] name = "bit-set" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec 0.8.0", -] - -[[package]] -name = "bit-set" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2f926cc3060f09db9ebc5b52823d85268d24bb917e472c0c4bea35780a7d" -dependencies = [ - "bit-vec 0.9.1", + "bit-vec", ] [[package]] @@ -617,12 +383,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" -[[package]] -name = "bit-vec" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" - [[package]] name = "bitflags" version = "1.3.2" @@ -634,9 +394,6 @@ name = "bitflags" version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" -dependencies = [ - "serde_core", -] [[package]] name = "block" @@ -684,28 +441,12 @@ dependencies = [ "piper", ] -[[package]] -name = "borsh" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" -dependencies = [ - "bytes", - "cfg_aliases", -] - [[package]] name = "bumpalo" version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" -[[package]] -name = "by_address" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" - [[package]] name = "bytemuck" version = "1.25.2" @@ -797,16 +538,7 @@ dependencies = [ "find-msvc-tools", "jobserver", "libc", - "shlex 2.0.1", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom 7.1.3", + "shlex", ] [[package]] @@ -821,15 +553,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" -[[package]] -name = "cgl" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" -dependencies = [ - "libc", -] - [[package]] name = "chacha20" version = "0.10.2" @@ -848,24 +571,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", - "js-sys", "num-traits", "serde", - "wasm-bindgen", "windows-link", ] -[[package]] -name = "clang-sys" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157a8ba7b480713b56f4c09fd13fc3e0a22a5dfab8097ba61cbc5feef950788a" -dependencies = [ - "glob", - "libc", - "libloading", -] - [[package]] name = "clipboard-win" version = "5.4.3" @@ -905,15 +615,6 @@ dependencies = [ "x11rb", ] -[[package]] -name = "clru" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197fd99cb113a8d5d9b6376f3aa817f32c1078f2343b714fff7d2ca44fdf67d5" -dependencies = [ - "hashbrown 0.16.1", -] - [[package]] name = "cmake" version = "0.1.58" @@ -934,15 +635,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "codespan-reporting" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" -dependencies = [ - "unicode-width", -] - [[package]] name = "color_quant" version = "1.1.0" @@ -968,36 +660,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "const-field-offset" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d535c69e75b4e3c69e17205b5b37a91936c54086cecd339b70071500786acb9c" -dependencies = [ - "const-field-offset-macro", - "field-offset", -] - -[[package]] -name = "const-field-offset-macro" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d5848843a221ac268cfdd6bfd14e68d5d3dfa79d52c880aafab93f9517fb74" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - -[[package]] -name = "convert_case" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "convert_case" version = "0.11.0" @@ -1090,15 +752,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "173852283a9a57a3cbe365d86e74dc428a09c50421477d5ad6fe9d9509e37737" dependencies = [ "bitflags 2.13.2", - "fontdb 0.23.0", - "harfrust 0.3.2", + "fontdb", + "harfrust", "linebender_resource_handle", "log", "rangemap", "rustc-hash 1.1.0", "self_cell", "skrifa 0.37.0", - "smol_str 0.2.2", + "smol_str", "swash", "sys-locale", "unicode-bidi", @@ -1107,12 +769,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "countme" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -1140,49 +796,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[package]] -name = "crossbeam-channel" -version = "0.5.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e8bd762f7479489c70ed6c768ddca99d7296857de437a68dcb2a94365b3fae" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.23" @@ -1205,7 +818,7 @@ dependencies = [ "etagere", "lru", "rustc-hash 2.1.3", - "wgpu 27.0.1", + "wgpu", ] [[package]] @@ -1279,29 +892,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" -[[package]] -name = "derive_more" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" -dependencies = [ - "convert_case 0.10.0", - "proc-macro2", - "quote", - "rustc_version", - "syn 2.0.119", - "unicode-xid", -] - [[package]] name = "digest" version = "0.10.7" @@ -1369,46 +959,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" -[[package]] -name = "drm" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80bc8c5c6c2941f70a55c15f8d9f00f9710ebda3ffda98075f996a0e6c92756f" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "drm-ffi", - "drm-fourcc", - "libc", - "rustix 0.38.44", -] - -[[package]] -name = "drm-ffi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51a91c9b32ac4e8105dec255e849e0d66e27d7c34d184364fb93e469db08f690" -dependencies = [ - "drm-sys", - "rustix 1.1.6", -] - -[[package]] -name = "drm-fourcc" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" - -[[package]] -name = "drm-sys" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8e1361066d91f5ffccff060a3c3be9c3ecde15be2959c1937595f7a82a9f8" -dependencies = [ - "libc", - "linux-raw-sys 0.9.4", -] - [[package]] name = "dtor" version = "0.8.1" @@ -1427,12 +977,6 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" -[[package]] -name = "either" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" - [[package]] name = "encoding_rs" version = "0.8.42" @@ -1550,36 +1094,6 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "femtovg" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31eebf3ab1b76359ccd5f850c07a7c6b2722c64d9127c40e02358e83f3ff9b1a" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "fnv", - "glow 0.18.0", - "imgref", - "itertools 0.15.0", - "log", - "rgb", - "slotmap", - "swash", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "field-offset" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" -dependencies = [ - "memoffset", - "rustc_version", -] - [[package]] name = "filetime" version = "0.2.29" @@ -1596,23 +1110,6 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c66915cc5391097de7a2b0b972e8505aa33c0df401fd3a6811dbdb32881ba48" -[[package]] -name = "fixed_decimal" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2214fb00f669ee96bee5bb29dfb1ddabe058b2bc426817efc79afa03c9bc55ae" -dependencies = [ - "displaydoc", - "smallvec", - "writeable", -] - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - [[package]] name = "flate2" version = "1.1.10" @@ -1672,7 +1169,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbc773e24e02d4ddd8395fd30dc147524273a83e54e0f312d986ea30de5f5646" dependencies = [ - "roxmltree 0.20.0", + "roxmltree", ] [[package]] @@ -1689,39 +1186,6 @@ dependencies = [ "ttf-parser", ] -[[package]] -name = "fontdb" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2660c5e9157bf76d2db1294e4a9feba604ef610819a3b591088d0d8392a3290f" -dependencies = [ - "log", - "slotmap", - "tinyvec", -] - -[[package]] -name = "fontique" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6688bc1294fe7117d788937b6c53480169b29c566954af490830d4c09da9516a" -dependencies = [ - "hashbrown 0.17.1", - "linebender_resource_handle", - "memmap2", - "objc2 0.6.5", - "objc2-core-foundation", - "objc2-core-text", - "objc2-foundation 0.3.2", - "parlance", - "read-fonts 0.41.0", - "roxmltree 0.21.2", - "smallvec", - "windows 0.62.2", - "windows-core 0.62.2", - "yeslogic-fontconfig-sys", -] - [[package]] name = "foreign-types" version = "0.5.0" @@ -1875,28 +1339,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gbm" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce852e998d3ca5e4a97014fb31c940dc5ef344ec7d364984525fd11e8a547e6a" -dependencies = [ - "bitflags 2.13.2", - "drm", - "drm-fourcc", - "gbm-sys", - "libc", -] - -[[package]] -name = "gbm-sys" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13a5f2acc785d8fb6bf6b7ab6bfb0ef5dad4f4d97e8e70bb8e470722312f76f" -dependencies = [ - "libc", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -1966,16 +1408,6 @@ dependencies = [ "weezl", ] -[[package]] -name = "gif" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159" -dependencies = [ - "color_quant", - "weezl", -] - [[package]] name = "gl_generator" version = "0.14.0" @@ -2023,75 +1455,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "glow" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "263218b0ba2b0715c3370fb04674f5f8aa331594b521c94ff0a8e4a8472d1386" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "glutin" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12124de845cacfebedff80e877bb37b5b75c34c5a4c89e47e1cdd67fb6041325" -dependencies = [ - "bitflags 2.13.2", - "cfg_aliases", - "cgl", - "dispatch2", - "glutin_egl_sys", - "glutin_glx_sys", - "glutin_wgl_sys", - "libloading", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-core-foundation", - "objc2-foundation 0.3.2", - "once_cell", - "raw-window-handle", - "wayland-sys", - "windows-sys 0.52.0", - "x11-dl", -] - -[[package]] -name = "glutin-winit" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85edca7075f8fc728f28cb8fbb111a96c3b89e930574369e3e9c27eb75d3788f" -dependencies = [ - "cfg_aliases", - "glutin", - "raw-window-handle", - "winit", -] - -[[package]] -name = "glutin_egl_sys" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4680ba6195f424febdc3ba46e7a42a0e58743f2edb115297b86d7f8ecc02d2" -dependencies = [ - "gl_generator", - "windows-sys 0.52.0", -] - -[[package]] -name = "glutin_glx_sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7bb2938045a88b612499fbcba375a77198e01306f52272e692f8c1f3751185" -dependencies = [ - "gl_generator", - "x11-dl", -] - [[package]] name = "glutin_wgl_sys" version = "0.6.1" @@ -2132,20 +1495,6 @@ dependencies = [ "windows 0.58.0", ] -[[package]] -name = "gpu-allocator" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51255ea7cfaadb6c5f1528d43e92a82acb2b96c43365989a28b2d44ee38f8795" -dependencies = [ - "ash", - "hashbrown 0.16.1", - "log", - "presser", - "thiserror 2.0.21", - "windows 0.62.2", -] - [[package]] name = "gpu-descriptor" version = "0.3.2" @@ -2166,12 +1515,6 @@ dependencies = [ "bitflags 2.13.2", ] -[[package]] -name = "grid" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40ca9252762c466af32d0b1002e91e4e1bc5398f77455e55474deb466355ff5" - [[package]] name = "guillotiere" version = "0.6.2" @@ -2226,24 +1569,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "harfrust" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03d949a14aa089bbb282f7dd76a498a7f684428e4257202efc119ec010376f9" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "read-fonts 0.41.0", - "smallvec", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - [[package]] name = "hashbrown" version = "0.15.5" @@ -2259,8 +1584,6 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "allocator-api2", - "equivalent", "foldhash 0.2.0", ] @@ -2269,21 +1592,6 @@ name = "hashbrown" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" -dependencies = [ - "foldhash 0.2.0", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" @@ -2303,12 +1611,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" -[[package]] -name = "htmlparser" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ce8546b993eaf241d69ded33b1be6d205dd9857ec879d9d18bd05d3676e144" - [[package]] name = "http" version = "1.5.0" @@ -2418,302 +1720,6 @@ dependencies = [ "windows-registry", ] -[[package]] -name = "i-slint-backend-linuxkms" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f519a8611a4982921e46e391015e5e40ceac5cc63813333ef91ada77df180d8" -dependencies = [ - "bytemuck", - "calloop 0.14.5", - "cfg_aliases", - "drm", - "gbm", - "glutin", - "i-slint-common", - "i-slint-core", - "i-slint-renderer-femtovg", - "i-slint-renderer-software", - "input", - "libseat", - "memmap2", - "nix", - "raw-window-handle", - "xkbcommon", -] - -[[package]] -name = "i-slint-backend-selector" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb974705d61ba56034f6129ff61f3e6282a2c0c07752f25e6cb417d81c0f0958" -dependencies = [ - "cfg-if", - "cfg_aliases", - "i-slint-backend-linuxkms", - "i-slint-backend-testing", - "i-slint-backend-winit", - "i-slint-common", - "i-slint-core", - "i-slint-core-macros", - "i-slint-renderer-femtovg", -] - -[[package]] -name = "i-slint-backend-testing" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01943d6c5ea5bc913d497bdaa423c309e7627afff47a6794bfd13be5c564209f" -dependencies = [ - "cfg_aliases", - "i-slint-common", - "i-slint-core", - "i-slint-renderer-software", - "vtable", -] - -[[package]] -name = "i-slint-backend-winit" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae4fcf1b19e9cb109984d2af87d2b9485388c619265bff71dd523133888bee2" -dependencies = [ - "accesskit", - "accesskit_winit", - "arboard", - "block2 0.6.2", - "bytemuck", - "cfg-if", - "cfg_aliases", - "futures", - "glutin", - "glutin-winit", - "i-slint-common", - "i-slint-core", - "i-slint-core-macros", - "i-slint-renderer-femtovg", - "i-slint-renderer-skia", - "i-slint-renderer-software", - "imgref", - "lyon_path", - "muda", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-foundation 0.3.2", - "objc2-quartz-core 0.3.2", - "objc2-ui-kit 0.3.2", - "pin-weak", - "raw-window-handle", - "rgb", - "scoped-tls-hkt", - "scopeguard", - "softbuffer", - "strum", - "vtable", - "wasm-bindgen", - "web-sys", - "webbrowser", - "windows 0.62.2", - "winit", - "zbus", -] - -[[package]] -name = "i-slint-common" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a578f3e4b681b2b9cbd326d3be19716e2fac51d00a8a5b00c0ef4ae923b5e6" -dependencies = [ - "derive_more", - "fontique", - "htmlparser", - "icu_decimal", - "icu_locale_core", - "icu_provider", - "pulldown-cmark", - "resvg 0.48.1", - "skrifa 0.44.0", -] - -[[package]] -name = "i-slint-compiler" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55d48ebef05e2bf09ba5a1fc67bcb11033b9e12a2a50ed3105c7d25e2b539d0" -dependencies = [ - "annotate-snippets", - "by_address", - "data-url", - "derive_more", - "i-slint-common", - "icu_normalizer", - "icu_properties", - "image", - "indexmap", - "itertools 0.15.0", - "lyon_extra", - "lyon_path", - "num_enum", - "proc-macro2", - "quote", - "rayon", - "resvg 0.48.1", - "rowan", - "rspolib", - "skrifa 0.44.0", - "smol_str 0.3.7", - "strum", - "swash", - "typed-index-collections", - "unicode-segmentation", - "url", -] - -[[package]] -name = "i-slint-core" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2ea15059d70bc31b1a8b1eb4c34f2c5df04cb7e53f36179b43c0261231d646" -dependencies = [ - "accesskit", - "async-channel", - "bitflags 2.13.2", - "cfg-if", - "chrono", - "clru", - "const-field-offset", - "derive_more", - "euclid", - "i-slint-common", - "i-slint-core-macros", - "icu_normalizer", - "image", - "js-sys", - "ksni", - "lyon_algorithms", - "lyon_extra", - "lyon_geom", - "lyon_path", - "num-traits", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-foundation 0.3.2", - "once_cell", - "parley", - "pin-project", - "pin-weak", - "portable-atomic", - "raw-window-handle", - "resvg 0.48.1", - "rgb", - "scopeguard", - "skrifa 0.44.0", - "slab", - "strum", - "swash", - "sys-locale", - "taffy", - "unicode-linebreak", - "unicode-script", - "unicode-segmentation", - "vtable", - "wasm-bindgen", - "web-sys", - "web-time", - "wgpu 30.0.1", - "windows 0.62.2", -] - -[[package]] -name = "i-slint-core-macros" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f5a8a076de52f53be80caa826599ed2107b54c9d4a421e66dc06cf893a984c" -dependencies = [ - "quote", - "serde_json", - "syn 3.0.9", -] - -[[package]] -name = "i-slint-renderer-femtovg" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb0de504d57cdadf80c2abf7bcb8b7135a3716aee1f41b6ebb90ea93e3649d7c" -dependencies = [ - "cfg-if", - "const-field-offset", - "femtovg", - "glow 0.18.0", - "i-slint-common", - "i-slint-core", - "i-slint-core-macros", - "imgref", - "lyon_path", - "pin-weak", - "rgb", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "i-slint-renderer-skia" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc9c1cf02385f1d26fc1f423544e52390a8e5c2d89420a8042aa94b4fe109d1f" -dependencies = [ - "bytemuck", - "cfg-if", - "cfg_aliases", - "clru", - "const-field-offset", - "glow 0.18.0", - "glutin", - "i-slint-common", - "i-slint-core", - "i-slint-core-macros", - "lyon_path", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-core-foundation", - "objc2-foundation 0.3.2", - "objc2-metal 0.3.2", - "objc2-quartz-core 0.3.2", - "pin-weak", - "raw-window-handle", - "read-fonts 0.41.0", - "scoped-tls-hkt", - "skia-safe", - "softbuffer", - "spin_on", - "unicode-segmentation", - "vtable", - "wgpu 30.0.1", - "wgpu-hal 30.0.1", - "windows 0.62.2", - "windows-core 0.62.2", - "write-fonts", -] - -[[package]] -name = "i-slint-renderer-software" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f8c641e138a2cc96537cac4481f5c7c8bb8dcc66d09acaed269329c8738628a" -dependencies = [ - "bytemuck", - "clru", - "derive_more", - "euclid", - "i-slint-common", - "i-slint-core", - "lyon_path", - "num-traits", - "skrifa 0.44.0", - "swash", - "zeno", -] - [[package]] name = "iana-time-zone" version = "0.1.65" @@ -2768,7 +1774,7 @@ dependencies = [ "log", "num-traits", "rustc-hash 2.1.3", - "smol_str 0.2.2", + "smol_str", "thiserror 2.0.21", "web-time", ] @@ -2867,10 +1873,10 @@ dependencies = [ "iced_graphics", "kurbo 0.10.4", "log", - "resvg 0.45.1", + "resvg", "rustc-hash 2.1.3", "softbuffer", - "tiny-skia 0.11.4", + "tiny-skia", ] [[package]] @@ -2888,10 +1894,10 @@ dependencies = [ "iced_debug", "iced_graphics", "log", - "resvg 0.45.1", + "resvg", "rustc-hash 2.1.3", "thiserror 2.0.21", - "wgpu 27.0.1", + "wgpu", ] [[package]] @@ -2941,29 +1947,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_decimal" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1150ad5e272740670464934ee76facda43ef2e11f85c27b7ba76ccb33edf2d05" -dependencies = [ - "displaydoc", - "fixed_decimal", - "icu_decimal_data", - "icu_locale_core", - "icu_locale_fallback", - "icu_plurals", - "icu_provider", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_decimal_data" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5595ab78370d48abd24a062f3db115d5108dd0b65634352036cae532aebb0df8" - [[package]] name = "icu_locale_core" version = "2.4.0" @@ -2972,32 +1955,11 @@ checksum = "25d29b57c17c6528d0dc4c2141cfa2d08200465acb537a3909c8b9b8a4a984c0" dependencies = [ "displaydoc", "litemap", - "serde", "tinystr", "writeable", "zerovec", ] -[[package]] -name = "icu_locale_fallback" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406e9ae5b95d8aa37db6293405931b766a6172d1848daee22d70eb44aa78a43c" -dependencies = [ - "icu_locale_core", - "icu_locale_fallback_data", - "icu_provider", - "potential_utf", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locale_fallback_data" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3632ebbd0c5c3637ba1a40bdf8288f2cb9d2268e73441a69d5fc73d7cfbaa87c" - [[package]] name = "icu_normalizer" version = "2.4.0" @@ -3018,25 +1980,6 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20f0088bfb7441f7a37fa0c9e20cb1e9cba1cac6b9ce8cd2a6dc44294f8e8cbc" -[[package]] -name = "icu_plurals" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef046647b445acf95ce0f8083fa292467d3df649959fa9a20f3f8abfd957c5d" -dependencies = [ - "fixed_decimal", - "icu_locale_fallback", - "icu_plurals_data", - "icu_provider", - "zerovec", -] - -[[package]] -name = "icu_plurals_data" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43ff7df2c1a1d41588a6ddcba354d513d4a3e10eec22c06fe56d13c12a848ea" - [[package]] name = "icu_properties" version = "2.4.0" @@ -3066,8 +2009,6 @@ checksum = "413099315636c588ee8f011190b329b971a09a8fae9d157e01dcae8379468514" dependencies = [ "displaydoc", "icu_locale_core", - "serde", - "stable_deref_trait", "writeable", "yoke", "zerofrom", @@ -3075,29 +2016,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_segmenter" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b195dc605f81aa181bec9b3bd14e26cc71b903e4644f6af578ca9772c7a710" -dependencies = [ - "icu_collections", - "icu_locale_fallback", - "icu_provider", - "icu_segmenter_data", - "potential_utf", - "smallvec", - "utf8_iter", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_segmenter_data" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "913a7d294ad056474749152107309fdee3ec17d2482d1ab70fdc61a81c64b9a3" - [[package]] name = "ident_case" version = "1.0.1" @@ -3156,18 +2074,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" -[[package]] -name = "imagesize" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b27460c2c92b037f3f94c538ed9a3342f3fdf923606781629ccb35f82d042a" - -[[package]] -name = "imgref" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e44b0a4eaa4c82f441d50a963f2d5f05a787240aeee097597033e72accfd22f" - [[package]] name = "indexmap" version = "2.14.2" @@ -3180,60 +2086,12 @@ dependencies = [ "serde_core", ] -[[package]] -name = "input" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9793345a65d71317763a33066b5d8351f8760dde8d4930fe9e39b5f14a7959d" -dependencies = [ - "bitflags 2.13.2", - "input-sys", - "libc", - "log", - "udev", -] - -[[package]] -name = "input-sys" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eee07d8e02bd95bf52b2e642cf13d33701b94c6e4b04fbf1d1fb07e9cb19e7" - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "ipnet" version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.18" @@ -3328,17 +2186,6 @@ dependencies = [ "mutate_once", ] -[[package]] -name = "keyboard-types" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" -dependencies = [ - "bitflags 2.13.2", - "serde", - "unicode-segmentation", -] - [[package]] name = "khronos-egl" version = "6.0.0" @@ -3356,26 +2203,6 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" -[[package]] -name = "ksni" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bcc1cb43797140f74b711f1c4a49f48a7a7429f211c5fb78264e7bcd1e99caf" -dependencies = [ - "arc-swap", - "async-executor", - "async-io", - "async-lock", - "crossbeam-queue", - "futures-channel", - "futures-lite", - "futures-util", - "pastey", - "serde", - "task-local", - "zbus", -] - [[package]] name = "kurbo" version = "0.10.4" @@ -3397,24 +2224,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "kurbo" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b60dfc32f652b926df6192e55525b16d186c69d47876c3ead4da5cc9f8450e2" -dependencies = [ - "arrayvec", - "euclid", - "polycool", - "smallvec", -] - -[[package]] -name = "lazy_static" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20870f649af7073d53e38067b2a84312175d56ea15217e1b15bc83506ec50afb" - [[package]] name = "libc" version = "0.2.191" @@ -3449,36 +2258,6 @@ dependencies = [ "redox_syscall 0.9.5", ] -[[package]] -name = "libseat" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6656c69b6e0366ffb83faa232f3e4fda5fc91161722d140f2c95ce2e90b1ef31" -dependencies = [ - "errno", - "libseat-sys", - "log", -] - -[[package]] -name = "libseat-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a484fa48be5f62a8d3ffed767779d0ab808cfead91de98ef4362d469097dfb" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "libudev-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" -dependencies = [ - "libc", - "pkg-config", -] - [[package]] name = "lilt" version = "0.8.2" @@ -3500,12 +2279,6 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -[[package]] -name = "linux-raw-sys" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -3551,47 +2324,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f" -[[package]] -name = "lyon_algorithms" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a6b9d4e8b48acd531fbf1241ad9b270df6e60b6b92bdea1469f4f40899d805" -dependencies = [ - "lyon_path", - "num-traits", -] - -[[package]] -name = "lyon_extra" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7755f08423275157ad1680aaecc9ccb7e0cc633da3240fea2d1522935cc15c72" -dependencies = [ - "lyon_path", - "thiserror 2.0.21", -] - -[[package]] -name = "lyon_geom" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82dd26aa4dc0b5b70b9115de59824842bcb43cf4a28e1b1e6d0ad148c93f93e" -dependencies = [ - "arrayvec", - "euclid", - "num-traits", -] - -[[package]] -name = "lyon_path" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c463f9c428b7fc5ec885dcd39ce4aa61e29111d0e33483f6f98c74e89d8621e" -dependencies = [ - "lyon_geom", - "num-traits", -] - [[package]] name = "malloc_buf" version = "0.0.6" @@ -3672,12 +2404,6 @@ dependencies = [ "unicase", ] -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -3719,25 +2445,6 @@ dependencies = [ "pxfm", ] -[[package]] -name = "muda" -version = "0.19.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" -dependencies = [ - "crossbeam-channel", - "dpi", - "keyboard-types", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-core-foundation", - "objc2-foundation 0.3.2", - "once_cell", - "png 0.18.1", - "thiserror 2.0.21", - "windows-sys 0.61.2", -] - [[package]] name = "multiversion_no_op" version = "1.0.0" @@ -3782,11 +2489,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" dependencies = [ "arrayvec", - "bit-set 0.8.0", + "bit-set", "bitflags 2.13.2", "cfg-if", "cfg_aliases", - "codespan-reporting 0.12.0", + "codespan-reporting", "half", "hashbrown 0.16.1", "hexf-parse", @@ -3796,55 +2503,11 @@ dependencies = [ "num-traits", "once_cell", "rustc-hash 1.1.0", - "spirv 0.3.0+sdk-1.3.268.0", + "spirv", "thiserror 2.0.21", "unicode-ident", ] -[[package]] -name = "naga" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a616d2fb8c89516ac2723a581f69d6c18576046bed761bd6b305e5618e6ae130" -dependencies = [ - "arrayvec", - "bit-set 0.10.0", - "bitflags 2.13.2", - "cfg-if", - "cfg_aliases", - "codespan-reporting 0.13.1", - "half", - "hashbrown 0.17.1", - "indexmap", - "libm", - "log", - "naga-types", - "num-traits", - "once_cell", - "rustc-hash 1.1.0", - "spirv 0.4.0+sdk-1.4.341.0", - "thiserror 2.0.21", - "unicode-ident", -] - -[[package]] -name = "naga-types" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590afbf58a6f4f62873cd5cff4468061844bafa1cdf399cc954537c22d768d49" -dependencies = [ - "hashbrown 0.17.1", - "indexmap", - "rustc-hash 1.1.0", - "thiserror 2.0.21", -] - -[[package]] -name = "natord" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308d96db8debc727c3fd9744aac51751243420e46edf401010908da7f8d5e57c" - [[package]] name = "ndk" version = "0.9.0" @@ -3887,25 +2550,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nom" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" -dependencies = [ - "memchr", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -4100,7 +2744,7 @@ dependencies = [ "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", - "objc2-metal 0.2.2", + "objc2-metal", ] [[package]] @@ -4217,18 +2861,6 @@ dependencies = [ "objc2-foundation 0.2.2", ] -[[package]] -name = "objc2-metal" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" -dependencies = [ - "bitflags 2.13.2", - "block2 0.6.2", - "objc2 0.6.5", - "objc2-foundation 0.3.2", -] - [[package]] name = "objc2-quartz-core" version = "0.2.2" @@ -4239,7 +2871,7 @@ dependencies = [ "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", - "objc2-metal 0.2.2", + "objc2-metal", ] [[package]] @@ -4251,9 +2883,7 @@ dependencies = [ "bitflags 2.13.2", "objc2 0.6.5", "objc2-core-foundation", - "objc2-core-graphics", "objc2-foundation 0.3.2", - "objc2-metal 0.3.2", ] [[package]] @@ -4287,20 +2917,6 @@ dependencies = [ "objc2-user-notifications", ] -[[package]] -name = "objc2-ui-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" -dependencies = [ - "bitflags 2.13.2", - "block2 0.6.2", - "objc2 0.6.5", - "objc2-core-foundation", - "objc2-foundation 0.3.2", - "objc2-quartz-core 0.3.2", -] - [[package]] name = "objc2-uniform-type-identifiers" version = "0.2.2" @@ -4330,10 +2946,6 @@ name = "once_cell" version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" -dependencies = [ - "critical-section", - "portable-atomic", -] [[package]] name = "openssl-probe" @@ -4370,16 +2982,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "os_pipe" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "owned_ttf_parser" version = "0.25.1" @@ -4418,40 +3020,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "parlance" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73072a9470554c8e794778acece2312661218aaabb635600957d952cf01c716e" - -[[package]] -name = "parley" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22d2ff88bd3f7d68d1d9b09c7e6209f9a8e8c05088295140a2bcf2e9b17038c5" -dependencies = [ - "accesskit", - "fontique", - "harfrust 0.12.0", - "hashbrown 0.17.1", - "icu_normalizer", - "icu_properties", - "icu_segmenter", - "linebender_resource_handle", - "parlance", - "parley_data", - "skrifa 0.44.0", -] - -[[package]] -name = "parley_data" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1567535334d6ba2d3cde19221ba9a7bd0fabb3cbd99046ddfb10ae061cfcc889" -dependencies = [ - "icu_properties", -] - [[package]] name = "paste" version = "1.0.15" @@ -4470,60 +3038,6 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" -[[package]] -name = "petgraph" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" -dependencies = [ - "fixedbitset", - "hashbrown 0.15.5", - "indexmap", -] - -[[package]] -name = "phf" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" -dependencies = [ - "phf_macros", - "phf_shared", - "serde", -] - -[[package]] -name = "phf_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" -dependencies = [ - "fastrand", - "phf_shared", -] - -[[package]] -name = "phf_macros" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn 2.0.119", -] - -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - [[package]] name = "pico-args" version = "0.5.0" @@ -4562,12 +3076,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13bee6c73da26345c729282832b60b0363cf3dd9f4bfd81d8551b7a1c889a113" -[[package]] -name = "pin-weak" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b330c9d1b92dfe68442ca20b009c717d5f0b1e3cf4965e62f704c3c6e95a1305" - [[package]] name = "piper" version = "0.2.5" @@ -4625,29 +3133,17 @@ checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.5.3", + "hermit-abi", "pin-project-lite", "rustix 1.1.6", "windows-sys 0.61.2", ] -[[package]] -name = "polycool" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6" -dependencies = [ - "arrayvec", -] - [[package]] name = "portable-atomic" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" -dependencies = [ - "critical-section", -] [[package]] name = "portable-atomic-util" @@ -4664,8 +3160,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ - "serde_core", - "writeable", "zerovec", ] @@ -4684,16 +3178,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.119", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -4718,17 +3202,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" -[[package]] -name = "pulldown-cmark" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278e9268c93b9e498a2da46c34d90ba93a3255eb99009646398f34bc73ab36eb" -dependencies = [ - "bitflags 2.13.2", - "memchr", - "unicase", -] - [[package]] name = "pxfm" version = "0.1.30" @@ -4901,38 +3374,6 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" -[[package]] -name = "raw-window-metal" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40d213455a5f1dc59214213c7330e074ddf8114c9a42411eb890c767357ce135" -dependencies = [ - "objc2 0.6.5", - "objc2-core-foundation", - "objc2-foundation 0.3.2", - "objc2-quartz-core 0.3.2", -] - -[[package]] -name = "rayon" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - [[package]] name = "read-fonts" version = "0.35.0" @@ -5128,35 +3569,17 @@ version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8928798c0a55e03c9ca6c4c6846f76377427d2c1e1f7e6de3c06ae57942df43" dependencies = [ - "gif 0.13.3", + "gif", "image-webp", "log", "pico-args", "rgb", - "svgtypes 0.15.3", - "tiny-skia 0.11.4", - "usvg 0.45.1", + "svgtypes", + "tiny-skia", + "usvg", "zune-jpeg 0.4.21", ] -[[package]] -name = "resvg" -version = "0.48.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e3803f97b999e80cbf7c6ecdd07a8102204d92e1633cf48783720c521196bd" -dependencies = [ - "bytemuck", - "gif 0.14.2", - "image-webp", - "log", - "pico-args", - "rgb", - "svgtypes 0.16.1", - "tiny-skia 0.12.0", - "usvg 0.48.1", - "zune-jpeg 0.5.15", -] - [[package]] name = "rgb" version = "0.8.53" @@ -5227,7 +3650,7 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "840ef7200097f7e7b7f757f09a80b2ffb494438fca12ad6c84a15ddffc9647d3" dependencies = [ - "convert_case 0.11.0", + "convert_case", "proc-macro-crate", "proc-macro2", "quote", @@ -5355,47 +3778,12 @@ dependencies = [ "syn 3.0.9", ] -[[package]] -name = "rowan" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b574c58582fa59fa43a2feb6608b8744184659f08a2e0117e4b8224d95ed61" -dependencies = [ - "countme", - "hashbrown 0.14.5", - "memoffset", - "rustc-hash 1.1.0", - "text-size", -] - [[package]] name = "roxmltree" version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" -[[package]] -name = "roxmltree" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9da7f59328b09405b181fee1018925fad50f157afb43c0c0f5c522c256dd5907" -dependencies = [ - "memchr", -] - -[[package]] -name = "rspolib" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fda9a7796aff63a7b1b39ccc93fffaaf65e20042984b4843041a49ca4677535" -dependencies = [ - "lazy_static", - "natord", - "snafu", - "unicode-linebreak", - "unicode-width", -] - [[package]] name = "rustc-hash" version = "1.1.0" @@ -5599,12 +3987,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" -[[package]] -name = "scoped-tls-hkt" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9603871ffe5df3ac39cb624790c296dbd47a400d202f56bf3e414045099524d" - [[package]] name = "scopeguard" version = "1.2.0" @@ -5621,7 +4003,7 @@ dependencies = [ "log", "memmap2", "smithay-client-toolkit 0.19.2", - "tiny-skia 0.11.4", + "tiny-skia", ] [[package]] @@ -5743,15 +4125,6 @@ dependencies = [ "syn 3.0.9", ] -[[package]] -name = "serde_spanned" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c" -dependencies = [ - "serde_core", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5799,12 +4172,6 @@ dependencies = [ "digest", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "shlex" version = "2.0.1" @@ -5858,34 +4225,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33f4fe9184a62d842c9ef383018f3306d8ba224fd9d836f56d7288308847c256" -[[package]] -name = "skia-bindings" -version = "0.153.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb325787c91b3f6c34a7c6f2b8a2297b20292d733ca53a08c233e5028aec49af" -dependencies = [ - "bindgen", - "cc", - "flate2", - "heck", - "pkg-config", - "regex", - "serde_json", - "tar", - "toml", -] - -[[package]] -name = "skia-safe" -version = "0.153.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61cb643dac43067f3eb76c866635a74377ac0abca0ff2590674e1e295514c3d" -dependencies = [ - "bitflags 2.13.2", - "skia-bindings", - "windows 0.62.2", -] - [[package]] name = "skrifa" version = "0.37.0" @@ -5912,53 +4251,6 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" -[[package]] -name = "slint" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e477d5ff6fec20909100ff8f7062432ebfbda7a62a0f37d0252aa126f38c83" -dependencies = [ - "const-field-offset", - "i-slint-backend-linuxkms", - "i-slint-backend-selector", - "i-slint-common", - "i-slint-core", - "i-slint-core-macros", - "i-slint-renderer-femtovg", - "i-slint-renderer-software", - "num-traits", - "once_cell", - "pin-weak", - "slint-macros", - "unicode-segmentation", - "vtable", -] - -[[package]] -name = "slint-build" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea28d4e1ad47d829b91e227f17037fac07a8001668a93fee47ac04f88718ebc" -dependencies = [ - "derive_more", - "fontique", - "i-slint-compiler", - "spin_on", - "toml_edit", -] - -[[package]] -name = "slint-macros" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e74b13d20884dc480ce37d0fabbf02cb4bc0df2a595434feac96ca7c2a0f15" -dependencies = [ - "i-slint-compiler", - "proc-macro2", - "quote", - "spin_on", -] - [[package]] name = "slotmap" version = "1.1.1" @@ -6046,37 +4338,6 @@ dependencies = [ "serde", ] -[[package]] -name = "smol_str" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb7109d23f319619d4cc0de5464613c8b7b1a09db2774a58101459cf6be2f10" -dependencies = [ - "borsh", - "serde_core", -] - -[[package]] -name = "snafu" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" -dependencies = [ - "snafu-derive", -] - -[[package]] -name = "snafu-derive" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "socket2" version = "0.6.5" @@ -6118,15 +4379,6 @@ dependencies = [ "x11rb", ] -[[package]] -name = "spin_on" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076e103ed41b9864aa838287efe5f4e3a7a0362dd00671ae62a212e5e4612da2" -dependencies = [ - "pin-utils", -] - [[package]] name = "spirv" version = "0.3.0+sdk-1.3.268.0" @@ -6136,15 +4388,6 @@ dependencies = [ "bitflags 2.13.2", ] -[[package]] -name = "spirv" -version = "0.4.0+sdk-1.4.341.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9571ea910ebd84c86af4b3ed27f9dbdc6ad06f17c5f96146b2b671e2976744f" -dependencies = [ - "bitflags 2.13.2", -] - [[package]] name = "sse-stream" version = "0.2.6" @@ -6185,27 +4428,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "strum" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "subtle" version = "2.6.1" @@ -6228,16 +4450,6 @@ dependencies = [ "siphasher", ] -[[package]] -name = "svgtypes" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695b5790b3131dafa99b3bbfd25a216edb3d216dad9ca208d4657bfb8f2abc3d" -dependencies = [ - "kurbo 0.13.1", - "siphasher", -] - [[package]] name = "swash" version = "0.2.10" @@ -6297,10 +4509,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" dependencies = [ - "js-sys", "libc", - "wasm-bindgen", - "web-sys", ] [[package]] @@ -6324,18 +4533,6 @@ dependencies = [ "libc", ] -[[package]] -name = "taffy" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aea22054047c16c3f34d3ac473a2170be1424b1115b2a3adcf28cfb067c88859" -dependencies = [ - "arrayvec", - "grid", - "serde", - "slotmap", -] - [[package]] name = "tar" version = "0.4.46" @@ -6347,15 +4544,6 @@ dependencies = [ "xattr", ] -[[package]] -name = "task-local" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2972044a9e5e448a506a7ff6f0d03b566d8ef4cd6918a58fc59835a0f8666626" -dependencies = [ - "pin-project-lite", -] - [[package]] name = "tempfile" version = "3.27.0" @@ -6378,12 +4566,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "text-size" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233" - [[package]] name = "thiserror" version = "1.0.69" @@ -6436,22 +4618,7 @@ dependencies = [ "cfg-if", "log", "png 0.17.16", - "tiny-skia-path 0.11.4", -] - -[[package]] -name = "tiny-skia" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ffee5eaaf5527f630fb0e356b90ebdec84d5d18d937c5e440350f88c5a91ea" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "log", - "png 0.18.1", - "tiny-skia-path 0.12.0", + "tiny-skia-path", ] [[package]] @@ -6465,17 +4632,6 @@ dependencies = [ "strict-num", ] -[[package]] -name = "tiny-skia-path" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca365c3faccca67d06593c5980fa6c57687de727a03131735bb85f01fdeeb9" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - [[package]] name = "tiny-xlib" version = "0.2.5" @@ -6496,7 +4652,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abc840c238154d58f9e86b2792261edfde565a17696e1cda1a449de27979801a" dependencies = [ "displaydoc", - "serde_core", "zerovec", ] @@ -6583,21 +4738,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "1.1.8+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d" -dependencies = [ - "indexmap", - "serde_core", - "serde_spanned", - "toml_datetime", - "toml_parser", - "toml_writer", - "winnow", -] - [[package]] name = "toml_datetime" version = "1.1.2+spec-1.1.0" @@ -6616,7 +4756,6 @@ dependencies = [ "indexmap", "toml_datetime", "toml_parser", - "toml_writer", "winnow", ] @@ -6629,12 +4768,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "toml_writer" -version = "1.1.3+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770" - [[package]] name = "tower" version = "0.5.3" @@ -6725,17 +4858,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tree_magic_mini" -version = "3.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" -dependencies = [ - "memchr", - "nom 8.0.0", - "petgraph", -] - [[package]] name = "try-lock" version = "0.2.5" @@ -6769,16 +4891,6 @@ dependencies = [ "thiserror 2.0.21", ] -[[package]] -name = "typed-index-collections" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "898160f1dfd383b4e92e17f0512a7d62f3c51c44937b23b6ffc3a1614a8eaccd" -dependencies = [ - "bincode", - "serde", -] - [[package]] name = "typed-path" version = "0.13.0" @@ -6791,18 +4903,6 @@ version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" -[[package]] -name = "udev" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4e37e9ea4401fc841ff54b9ddfc9be1079b1e89434c1a6a865dd68980f7e9f" -dependencies = [ - "io-lifetimes", - "libc", - "libudev-sys", - "pkg-config", -] - [[package]] name = "uds_windows" version = "1.2.1" @@ -6880,12 +4980,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca718471876992059f251e33aafc334346ada08042b7661dd1fe313a9bced557" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "unlucky-agent" version = "0.1.0" @@ -6901,20 +4995,6 @@ dependencies = [ "unlucky-core", ] -[[package]] -name = "unlucky-app" -version = "0.1.0" -dependencies = [ - "serde", - "serde_json", - "slint", - "slint-build", - "unlucky-agent", - "unlucky-cli", - "unlucky-core", - "unlucky-presenter", -] - [[package]] name = "unlucky-app-iced" version = "0.1.0" @@ -6995,12 +5075,6 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "unty" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" - [[package]] name = "url" version = "2.5.8" @@ -7022,46 +5096,18 @@ dependencies = [ "base64 0.22.1", "data-url", "flate2", - "fontdb 0.23.0", - "imagesize 0.13.0", + "fontdb", + "imagesize", "kurbo 0.11.3", "log", "pico-args", - "roxmltree 0.20.0", + "roxmltree", "rustybuzz", "simplecss", "siphasher", "strict-num", - "svgtypes 0.15.3", - "tiny-skia-path 0.11.4", - "unicode-bidi", - "unicode-script", - "unicode-vo", - "xmlwriter", -] - -[[package]] -name = "usvg" -version = "0.48.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977d0a4abdef933f424a99fe09f95576e089b90aebc6f016a3bc813762493e91" -dependencies = [ - "base64 0.23.1", - "data-url", - "flate2", - "fontdb 0.24.0", - "harfrust 0.12.0", - "imagesize 0.15.0", - "kurbo 0.13.1", - "log", - "pico-args", - "roxmltree 0.21.2", - "simplecss", - "siphasher", - "skrifa 0.44.0", - "strict-num", - "svgtypes 0.16.1", - "tiny-skia-path 0.12.0", + "svgtypes", + "tiny-skia-path", "unicode-bidi", "unicode-script", "unicode-vo", @@ -7092,29 +5138,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "vtable" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "515a4b5b1399cc46fb0dc4081436cb40a3852a2d3e94fd1fa50bb68a334896eb" -dependencies = [ - "const-field-offset", - "portable-atomic", - "stable_deref_trait", - "vtable-macro", -] - -[[package]] -name = "vtable-macro" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8191d73ececf73fc94e65809bf0e667525a0bcff9aeeb8d042a4173a508332a1" -dependencies = [ - "proc-macro2", - "quote", - "syn 3.0.9", -] - [[package]] name = "walkdir" version = "2.5.0" @@ -7400,22 +5423,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webbrowser" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c8ddfbbf66e501434657400268cefe51b95140a0266236415cda7627732df7" -dependencies = [ - "jni", - "log", - "ndk-context", - "objc2 0.6.5", - "objc2-app-kit 0.3.2", - "objc2-foundation 0.3.2", - "url", - "web-sys", -] - [[package]] name = "webpki-root-certs" version = "1.0.11" @@ -7463,7 +5470,7 @@ dependencies = [ "hashbrown 0.16.1", "js-sys", "log", - "naga 27.0.3", + "naga", "parking_lot", "portable-atomic", "profiling", @@ -7473,33 +5480,9 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core 27.0.3", - "wgpu-hal 27.0.4", - "wgpu-types 27.0.1", -] - -[[package]] -name = "wgpu" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527ccdf43dd5b2e8676eed9984ce00e2bbb0a1b85b70c1969dcb6cd2eb55ab9e" -dependencies = [ - "arrayvec", - "bitflags 2.13.2", - "bytemuck", - "cfg-if", - "cfg_aliases", - "document-features", - "hashbrown 0.17.1", - "log", - "portable-atomic", - "profiling", - "raw-window-handle", - "smallvec", - "static_assertions", - "wgpu-core 30.0.1", - "wgpu-hal 30.0.1", - "wgpu-types 30.0.1", + "wgpu-core", + "wgpu-hal", + "wgpu-types", ] [[package]] @@ -7509,8 +5492,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7" dependencies = [ "arrayvec", - "bit-set 0.8.0", - "bit-vec 0.8.0", + "bit-set", + "bit-vec", "bitflags 2.13.2", "bytemuck", "cfg_aliases", @@ -7518,7 +5501,7 @@ dependencies = [ "hashbrown 0.16.1", "indexmap", "log", - "naga 27.0.3", + "naga", "once_cell", "parking_lot", "portable-atomic", @@ -7527,44 +5510,11 @@ dependencies = [ "rustc-hash 1.1.0", "smallvec", "thiserror 2.0.21", - "wgpu-core-deps-apple 27.0.0", + "wgpu-core-deps-apple", "wgpu-core-deps-emscripten", - "wgpu-core-deps-windows-linux-android 27.0.0", - "wgpu-hal 27.0.4", - "wgpu-types 27.0.1", -] - -[[package]] -name = "wgpu-core" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c018fce9b6270aa203c2fdd56f3cce996713534bd757e4ea58c8560b121f14" -dependencies = [ - "arrayvec", - "bit-set 0.10.0", - "bit-vec 0.9.1", - "bitflags 2.13.2", - "bytemuck", - "cfg_aliases", - "document-features", - "hashbrown 0.17.1", - "indexmap", - "log", - "naga 30.0.1", - "naga-types", - "once_cell", - "parking_lot", - "portable-atomic", - "profiling", - "raw-window-handle", - "rustc-hash 1.1.0", - "smallvec", - "thiserror 2.0.21", - "wgpu-core-deps-apple 30.0.1", - "wgpu-core-deps-windows-linux-android 30.0.1", - "wgpu-hal 30.0.1", - "wgpu-naga-bridge", - "wgpu-types 30.0.1", + "wgpu-core-deps-windows-linux-android", + "wgpu-hal", + "wgpu-types", ] [[package]] @@ -7573,16 +5523,7 @@ version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233" dependencies = [ - "wgpu-hal 27.0.4", -] - -[[package]] -name = "wgpu-core-deps-apple" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061f3d319a40d39d00b1ecc2c33b89fe21d4e6fe01859df3500a3a8ecccd6b68" -dependencies = [ - "wgpu-hal 30.0.1", + "wgpu-hal", ] [[package]] @@ -7591,7 +5532,7 @@ version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06ac3444a95b0813ecfd81ddb2774b66220b264b3e2031152a4a29fda4da6b5" dependencies = [ - "wgpu-hal 27.0.4", + "wgpu-hal", ] [[package]] @@ -7600,16 +5541,7 @@ version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3" dependencies = [ - "wgpu-hal 27.0.4", -] - -[[package]] -name = "wgpu-core-deps-windows-linux-android" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7586165fd5f6d881cb9ce4bb71f40d6caab2c0f1837e3fc1d9788a197fb6004f" -dependencies = [ - "wgpu-hal 30.0.1", + "wgpu-hal", ] [[package]] @@ -7621,17 +5553,17 @@ dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set 0.8.0", + "bit-set", "bitflags 2.13.2", "block", "bytemuck", "cfg-if", "cfg_aliases", "core-graphics-types 0.2.0", - "glow 0.16.0", + "glow", "glutin_wgl_sys", "gpu-alloc", - "gpu-allocator 0.27.0", + "gpu-allocator", "gpu-descriptor", "hashbrown 0.16.1", "js-sys", @@ -7640,7 +5572,7 @@ dependencies = [ "libloading", "log", "metal", - "naga 27.0.3", + "naga", "ndk-sys", "objc", "once_cell", @@ -7656,68 +5588,11 @@ dependencies = [ "thiserror 2.0.21", "wasm-bindgen", "web-sys", - "wgpu-types 27.0.1", + "wgpu-types", "windows 0.58.0", "windows-core 0.58.0", ] -[[package]] -name = "wgpu-hal" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b7fb58561a792bc237628ba0792e332de418fefe145f13b5ed8201e6d52f58" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bit-set 0.10.0", - "bitflags 2.13.2", - "block2 0.6.2", - "bytemuck", - "cfg-if", - "cfg_aliases", - "gpu-allocator 0.28.0", - "hashbrown 0.17.1", - "libc", - "libloading", - "log", - "naga 30.0.1", - "naga-types", - "objc2 0.6.5", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation 0.3.2", - "objc2-metal 0.3.2", - "objc2-quartz-core 0.3.2", - "once_cell", - "ordered-float", - "parking_lot", - "portable-atomic", - "portable-atomic-util", - "profiling", - "range-alloc", - "raw-window-handle", - "raw-window-metal", - "renderdoc-sys", - "smallvec", - "static_assertions", - "thiserror 2.0.21", - "wgpu-naga-bridge", - "wgpu-types 30.0.1", - "windows 0.62.2", - "windows-core 0.62.2", -] - -[[package]] -name = "wgpu-naga-bridge" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f62e73117bb7a62bfd9c5a5841438a823f6566c6442a808ee269d2d055c081" -dependencies = [ - "naga 30.0.1", - "wgpu-types 30.0.1", -] - [[package]] name = "wgpu-types" version = "27.0.1" @@ -7732,20 +5607,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wgpu-types" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99dad6f1fbdbbdb4c278a6508b059d44688f5cebddf78d005a46a31340269286" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "log", - "naga-types", - "raw-window-handle", - "static_assertions", -] - [[package]] name = "winapi-util" version = "0.1.11" @@ -7776,7 +5637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7810,7 +5671,7 @@ dependencies = [ "windows-interface 0.58.0", "windows-result 0.2.0", "windows-strings 0.1.0", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7914,7 +5775,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7933,7 +5794,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ "windows-result 0.2.0", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7945,22 +5806,13 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7969,7 +5821,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7981,35 +5833,20 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -8021,36 +5858,18 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -8063,48 +5882,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -8137,7 +5932,7 @@ dependencies = [ "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", - "objc2-ui-kit 0.2.2", + "objc2-ui-kit", "orbclient", "percent-encoding", "pin-project", @@ -8146,7 +5941,7 @@ dependencies = [ "rustix 0.38.44", "sctk-adwaita", "smithay-client-toolkit 0.19.2", - "smol_str 0.2.2", + "smol_str", "tracing", "unicode-segmentation", "wasm-bindgen", @@ -8178,37 +5973,6 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" -[[package]] -name = "wl-clipboard-rs" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959c7ac3b8afde864f7a7448ac16f29b2b83350b7eccbf77fb781c3999aa6848" -dependencies = [ - "libc", - "log", - "os_pipe", - "rustix 1.1.6", - "thiserror 2.0.21", - "tree_magic_mini", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-protocols-wlr", -] - -[[package]] -name = "write-fonts" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae90d1d9f6d1d36ef116b0b1e651a6d7c12ba925439d4d06ff9adc94662a3d8" -dependencies = [ - "font-types 0.12.7", - "indexmap", - "kurbo 0.13.1", - "log", - "read-fonts 0.41.0", -] - [[package]] name = "writeable" version = "0.6.4" @@ -8263,17 +6027,6 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" -[[package]] -name = "xkbcommon" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a974f48060a14e95705c01f24ad9c3345022f4d97441b8a36beb7ed5c4a02d" -dependencies = [ - "libc", - "memmap2", - "xkeysym", -] - [[package]] name = "xkbcommon-dl" version = "0.4.2" @@ -8311,17 +6064,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" -[[package]] -name = "yeslogic-fontconfig-sys" -version = "6.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8b8abf912b9a29ff112e1671c97c33636903d13a69712037190e6805af4f76" -dependencies = [ - "dlib", - "once_cell", - "pkg-config", -] - [[package]] name = "yoke" version = "0.8.4" @@ -8380,30 +6122,6 @@ dependencies = [ "zvariant", ] -[[package]] -name = "zbus-lockstep" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6998de05217a084b7578728a9443d04ea4cd80f2a0839b8d78770b76ccd45863" -dependencies = [ - "zbus_xml", - "zvariant", -] - -[[package]] -name = "zbus-lockstep-macros" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10da05367f3a7b7553c8cdf8fa91aee6b64afebe32b51c95177957efc47ca3a0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", - "zbus-lockstep", - "zbus_xml", - "zvariant", -] - [[package]] name = "zbus_macros" version = "5.19.0" @@ -8430,18 +6148,6 @@ dependencies = [ "zvariant", ] -[[package]] -name = "zbus_xml" -version = "5.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1586c021a01ca0a9216dcd874e546382e156a5cbab5fab6cb5f10087e22682a" -dependencies = [ - "serde", - "winnow", - "zbus_names", - "zvariant", -] - [[package]] name = "zcheapstr" version = "1.1.0" @@ -8513,7 +6219,6 @@ dependencies = [ "displaydoc", "yoke", "zerofrom", - "zerovec", ] [[package]] @@ -8522,7 +6227,6 @@ version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f58a2799cfe9a1670c7ea8edbd52ef8edb93cb37a7f83bf31ba9e35d9dae6a40" dependencies = [ - "serde", "yoke", "zerofrom", "zerovec-derive", diff --git a/Cargo.toml b/Cargo.toml index faf86d5..3633126 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,13 +4,13 @@ members = [ "crates/core", "crates/agent", # M85(D26):UI 框架无关的宿主层。Slint 版(crates/app)与 iced 版(crates/app-iced) - # 共用它;Slint 退役后只剩 iced 依赖,本 crate 不受影响。 + # 共用它;Slint 退役(M118 起 `crates/app` 已不是 workspace 成员)后只剩 iced 依赖,本 crate 不受影响。 "crates/presenter", - "crates/app", "crates/cli", "crates/design", # P4(D26 iced 重写)第一步:与 Slint 版 `crates/app` 并存的新 UI crate。 # bin 名 `unlucky-launcher-iced`,翻牌时才改名(见 DevDocs/SubAgentsTalk/app-iced-骨架与翻牌.md)。 + # M118 起它是发布矩阵里**唯一**的 GUI 来源:发布了 Slint 版的那个 bin 名属于被排除的 `crates/app`。 "crates/app-iced", # M87(D40 第 2 层):配色取色的解码适配层。**唯一**允许引入 `image` 类依赖的地方, # 使 `crates/design` 能继续宣称「零第三方依赖」。 @@ -19,6 +19,15 @@ members = [ # 壳层(iced 版现在,别的壳将来)与 presenter 都依赖它,所以它不能认任何一个渲染框架。 "crates/i18n", ] +# M118(D26):`crates/app` 是 Slint 退役树 —— UI 已迁到 iced,目录与源码**原样保留**作历史 +# 参考(另一份参考资产见 DevDocs/ops/slint-reference/),但不再进默认构建与发布矩阵。摘出去的 +# 是整棵 slint 1.18 + usvg 0.48 依赖树:本机单路冷编 ≈14 分钟,而 CI 的 `--workspace` 每次都会 +# 编它,既拖长反馈,又会在并行超配时随机 OOM(见 DevDocs/00-踩坑记录-p2.md T7)。 +# 排除 ≠ 删除,但**它确实不再可编**:该 manifest 整份都是 `*.workspace = true` 继承写法, +# 一旦不是 workspace 成员,继承无源、manifest 解析即失败(实测: +# `cargo metadata --manifest-path crates/app/Cargo.toml` → "error inheriting `edition` …")。 +# 要读这一版实现请直接读源码,别再尝试构建它。 +exclude = ["crates/app"] [workspace.package] version = "0.1.0" diff --git a/README.md b/README.md index f21f1bf..4d1afb5 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,10 @@ attached to other agent tooling as an MCP server. - **Single-file native binary**: the launcher itself needs no JVM, no WebView and no sidecar runtime. The JDK a game needs is downloaded and managed per instance, not as a launcher dependency. -- **Two UI stacks during the rewrite**: the released UI is Slint (Royalty-Free 2.0); the - next-generation UI is iced 0.14 + Material 3 Expressive and is still being written (see Status). +- **One UI stack in the build**: the UI is iced 0.14 + Material 3 Expressive. The earlier Slint + implementation (`crates/app`) is kept as source-only history: it is excluded from the cargo + workspace, so the workspace never builds, tests or ships it. v0.1.0 — the only tagged release so + far — still carries a Slint build (see Status). - **CPU software-rendering fallback**: `--software-renderer` keeps the interface rendering normally on machines with no usable GPU or with broken drivers. - **AI agent + MCP**: chat, setting edits and crash diagnosis inside the launcher; `ull agent @@ -34,7 +36,14 @@ attached to other agent tooling as an MCP server. Two tracks. They are not the same product yet, so read the headings before downloading anything. -### Track A — released: v0.1.0, Slint UI (this is what you can download today) +### Track A — historical: v0.1.0, Slint UI (the only tagged release so far) + +> **Historical implementation — no longer in the default build or the release matrix.** The Slint +> tree (`crates/app`) is kept in the repository as source-only reference: it is excluded from the +> cargo workspace, so `cargo build` / `cargo test` / `cargo clippy` never touch it and no artifact is +> built from it. Read the source if you want to see how that UI was put together; do not expect to +> build it. The list below is kept because it records what the v0.1.0 assets actually contain — +> since v0.1.0 the pipeline builds the iced binary and ships it under the same public asset names. - **GitHub Releases `v0.1.0`** (2026-11-01, flagged pre-release): single-file assets for Windows x64 (a bare `.exe`), Linux x64 and macOS (arm64 and x64) `.tar.gz`. Every release also carries @@ -67,16 +76,18 @@ Two tracks. They are not the same product yet, so read the headings before downl with automatic fallback, and the screenshot/diff channel the visual reviews use). - **Not done**: the component library (buttons, dialogs, lists, menus, search, and the rest of the M3 set), page migration, and the i18n pass. Every page in the iced binary is a placeholder. -- **Slint stays until the flip**: `crates/app` remains the reference implementation until the iced - build passes equivalence acceptance; only then is `unlucky-launcher-iced` renamed to - `unlucky-launcher` and the Slint crate retired. +- **Slint is retired from the build, kept as reference**: `crates/app` is no longer a workspace member + (M118) — the source stays for historical reference only: not compiled, not tested, not shipped, and + no longer buildable as a workspace member. What is left of the flip is the *rename*: until the iced + build passes equivalence acceptance its binary is still called `unlucky-launcher-iced`, while the + release pipeline already ships it under the public `unlucky-launcher` asset name. -Binaries in the workspace, so you can tell them apart: +Binaries you may run into, so you can tell them apart: | Binary | Crate | State | |--------|-------|-------| -| `unlucky-launcher` | `crates/app` (Slint) | released in v0.1.0; still the usable GUI; also runs every CLI subcommand | -| `unlucky-launcher-iced` | `crates/app-iced` (iced 0.14) | under construction; skeleton only, not shipped; same subcommand dispatch | +| `unlucky-launcher-iced` | `crates/app-iced` (iced 0.14) | the only GUI binary the workspace builds; the release pipeline stages it under the public name `unlucky-launcher`; same subcommand dispatch | +| `unlucky-launcher` | `crates/app` (Slint) | **historical**: that crate is excluded from the workspace, so this binary is no longer built or shipped; the v0.1.0 assets are the last Slint builds | | `ull` | `crates/cli` | the zero-UI build of the same command set, shipped as its own asset | `unlucky-launcher` and `ull` are not duplicates. The GUI binary needs the graphics stack when it @@ -122,8 +133,9 @@ Unlucky-Launcher (cargo workspace) ├── crates/agent # AI agent: ToolSpec registry + built-in client + MCP server (one core, two shapes) ├── crates/design # design tokens: real HCT color / type / shape / spacing / elevation / motion / icons │ # / component metrics — zero UI dependencies, no third-party crates -├── crates/app # Slint UI (bin `unlucky-launcher`): the released GUI, kept until equivalence acceptance -├── crates/app-iced # next-generation iced UI (bin `unlucky-launcher-iced`): under construction +├── crates/app # HISTORICAL Slint UI (bin `unlucky-launcher`): excluded from the workspace, +│ # source-only reference — never built, tested or shipped any more +├── crates/app-iced # the iced UI (bin `unlucky-launcher-iced`): the only GUI the workspace builds ├── crates/cli # CLI (bin `ull`): headless, zero UI └── packaging # single-file artifact matrix and release scripts ``` @@ -149,7 +161,7 @@ Prerequisites: `rustfmt` and `clippy` components) - Windows: MSVC toolchain (what CI uses) or MinGW-w64 (`x86_64-pc-windows-gnu`) - Linux: `libxkbcommon-dev libfontconfig1-dev libgl1-mesa-dev libegl1-mesa-dev libwayland-dev - libxcb1-dev` — needed by both UI stacks (Slint's winit + femtovg, iced's winit + wgpu/tiny-skia) + libxcb1-dev` — winit + wgpu/tiny-skia ask for these at build time (the Slint build also needed femtovg) ```bash cargo fmt --all --check # formatting @@ -158,24 +170,29 @@ cargo test --workspace # tests cargo build --release # binaries land in target/release/ ``` +`--workspace` covers the eight members in the module map. `crates/app` is excluded at the workspace +level (M118), so none of these commands compiles the Slint tree — and there is no build command for +it: that crate is kept as source-only reference and can no longer be built as a workspace member. + What the build produces: -- `unlucky-launcher` — the Slint UI (the released one). It is also the CLI: the same binary answers - every subcommand listed above. -- `unlucky-launcher-iced` — the iced UI skeleton. The name is temporary: it can only become - `unlucky-launcher` at the flip, because two crates in one workspace cannot emit the same binary - name into the same target directory. Same subcommand dispatch. +- `unlucky-launcher-iced` — the GUI (iced). It is also the CLI: the same binary answers every + subcommand listed above. The name is temporary — it becomes `unlucky-launcher` at the flip. The + release artifacts already carry the public name: the pipeline builds this bin and + `packaging/make_artifacts.py` stages it as `unlucky-launcher[.exe]`, so download links never change. +- `unlucky-launcher` — **historical**: no workspace build produces this binary any more; it belonged + to `crates/app`, which is excluded. The v0.1.0 assets are the last builds under this name. - `ull` — the CLI as a standalone, UI-free binary. Same command set, no graphics stack, smaller, and the right artifact for a machine that has no display at all. Rendering switches: -- `unlucky-launcher --software-renderer` (equivalent to `SLINT_BACKEND=winit-software`) forces the - CPU path on the Slint build - `unlucky-launcher-iced --software-renderer` forces tiny-skia (`ICED_BACKEND=tiny-skia`); - `--screenshot ` writes one frame and exits, which is the acceptance channel -- Both stacks fall back to the CPU path when no usable adapter is there: the Slint build through its - own renderer fallback chain, the iced build through its explicit probe + `--screenshot ` writes one frame and exits, which is the acceptance channel CI's headless + smoke job uses +- With no usable adapter the iced build's explicit probe falls back to the CPU path on its own +- **Historical** (v0.1.0's Slint build still takes it): `unlucky-launcher --software-renderer`, i.e. + `SLINT_BACKEND=winit-software`, forced the CPU renderer of that build through its own fallback chain Dependency license check (optional locally, required in CI): `cargo deny check licenses bans sources`. @@ -214,8 +231,10 @@ Minimum baseline: **Windows 10**; Windows 8.1 / 8 / 7 are not supported. [NOTICE](NOTICE). - **Slint** (), Royalty-Free 2.0: obligation for the Slint build that v0.1.0 ships — an `AboutSlint` widget on the about page (still outstanding) and, until it lands, the - NOTICE file, this section and a "Made with Slint" note on the release page. The obligation is - kept for as long as a Slint-linked binary ships. + NOTICE file, this section and a "Made with Slint" note on the release page. The obligation follows + a **Slint-linked binary**: it applies to the v0.1.0 assets (and to any later build that links Slint + again), not to new iced builds — `crates/app` is excluded from the workspace, so the pipeline no + longer produces a Slint-linked binary. - **iced** (), MIT: the framework of the next-generation UI, together with `winit` and, through it, `wgpu` / `tiny-skia` (Apache-2.0 / MIT). - **Google Material Color Utilities** (Apache-2.0): the color tokens in `crates/design` are a Rust diff --git a/README.zh-CN.md b/README.zh-CN.md index 64c5959..b8c209f 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -13,8 +13,9 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java - **单文件原生二进制**:启动器本体不需要 JVM、不需要 WebView、不带旁挂运行时。游戏要的 JDK 由 启动器按实例下载管理,不是启动器的依赖。 -- **重写期两套 UI 并存**:已发布版本是 Slint(Royalty-Free 2.0);下一代 UI 是 iced 0.14 + - Material 3 Expressive,目前仍在写(见「当前状态」)。 +- **默认构建里只有一套 UI**:UI 是 iced 0.14 + Material 3 Expressive。早先的 Slint 实现 + (`crates/app`)作为**历史参考**保留源码:已被 workspace `exclude`,默认构建不编、测试不跑、 + 发布不发。唯一已发布的 tag `v0.1.0` 发的仍是 Slint 版(见「当前状态」)。 - **CPU 软渲染兜底**:`--software-renderer` 让没有可用 GPU 或驱动有问题的老机也能正常显示界面。 - **AI Agent + MCP**:启动器内可对话、改设置、读崩溃诊断;`ull agent serve` 把同一个内核以 MCP server 形态(stdio 或 Streamable HTTP)开放给外部 Agent 工具。 @@ -29,7 +30,13 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java 两条轨道,还不是同一个东西——看小标题再决定下载什么。 -### 轨道 A —— 已发布:v0.1.0,Slint 版(现在能下载的就是它) +### 轨道 A —— 历史:v0.1.0,Slint 版(目前唯一的 tag) + +> **历史实现——已不在默认构建与发布矩阵内。** Slint 那棵树(`crates/app`)作为源码参考留在仓库里: +> 已被 cargo workspace `exclude`,所以 `cargo build` / `cargo test` / `cargo clippy` 都不会碰它, +> 也没有任何产物从它构建。想了解那一版 UI 怎么写的就直接读源码——**不要再尝试构建它**(它的 manifest +> 整份是 workspace 继承写法,离开 workspace 后连解析都过不了)。下面这段原文保留,因为它记录的是 +> `v0.1.0` 资产里到底装了什么;从 `v0.1.0` 之后,流水线构建的是 iced 版,对外文件名不变。 - **GitHub Releases `v0.1.0`**(2026-11-01,标记为 pre-release):单文件产物覆盖 Windows x64(裸 `.exe`)、Linux x64、macOS(arm64 与 x64)`.tar.gz`。每个 Release 另挂 `SHA256SUMS.txt` 与 @@ -59,15 +66,16 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java 对比通道)。 - **没完成**:组件库(按钮、对话框、列表、菜单、搜索栏,以及 M3 其余组件)、页面搬迁、i18n 文案。 iced 版里现在每一个页面都是占位。 -- **Slint 版在翻牌前不退场**:`crates/app` 作为参考实现保留,直到 iced 版通过等价验收;那时才把 - `unlucky-launcher-iced` 改名成 `unlucky-launcher`,并让 Slint 版退役。 +- **Slint 版已退出构建,只留源码作参考**:`crates/app` 不再是 workspace 成员(M118)——源码留作历史 + 参考,不编译、不测试、不发布,也不再有可用的构建方式。翻牌只剩**改名**这一步:在 iced 版通过等价 + 验收前,它的 bin 还叫 `unlucky-launcher-iced`;发布流水线已经把它按对外名 `unlucky-launcher` 打出去。 -工作区里的三个 bin,先认清楚: +可能会遇到的 bin,先认清楚: | 二进制 | crate | 状态 | |--------|-------|------| -| `unlucky-launcher` | `crates/app`(Slint) | v0.1.0 已发布,仍是当前能用的图形界面;同时支持全部 CLI 子命令 | -| `unlucky-launcher-iced` | `crates/app-iced`(iced 0.14) | 施工中,仅骨架,不随发布包分发;子命令分发同款 | +| `unlucky-launcher-iced` | `crates/app-iced`(iced 0.14) | workspace 里**唯一**的 GUI bin;发布流水线把它按对外名 `unlucky-launcher` 落盘;子命令分发同款 | +| `unlucky-launcher` | `crates/app`(Slint) | **历史**:该 crate 已被 workspace `exclude`,这个 bin 不再被构建或分发;`v0.1.0` 的资产是最后一批 Slint 版 | | `ull` | `crates/cli` | 同一套命令的零 UI 构建,作为独立资产随发布分发 | `unlucky-launcher` 与 `ull` 不是重复品:开窗时 GUI 二进制要用图形栈(X11 / Wayland / GL 走 @@ -109,8 +117,9 @@ Unlucky-Launcher (cargo workspace) ├── crates/agent # AI Agent:ToolSpec 注册表 + 内置客户端 + MCP server(双形态共用一个内核) ├── crates/design # 设计令牌:真 HCT 色彩 / 排版 / 形状 / 间距 / 高程 / 动效 / 图标 / 组件度量 │ # —— 零 UI 依赖、零第三方 crate -├── crates/app # Slint UI(bin `unlucky-launcher`):已发布的图形界面,保留到等价验收通过 -├── crates/app-iced # 下一代 iced UI(bin `unlucky-launcher-iced`):施工中 +├── crates/app # 历史 Slint UI(bin `unlucky-launcher`):已被 workspace `exclude`, +│ # 仅作源码参考——不再被构建 / 测试 / 发布 +├── crates/app-iced # iced UI(bin `unlucky-launcher-iced`):workspace 里唯一的 GUI bin ├── crates/cli # CLI(bin `ull`):headless,零 UI └── packaging # 单文件产物矩阵与发布脚本 ``` @@ -135,28 +144,34 @@ Unlucky-Launcher (cargo workspace) - Rust stable(`rust-toolchain.toml` 会自动选工具链;门禁还需要 `rustfmt` / `clippy` 组件) - Windows:MSVC 工具链(CI 用这套)或 MinGW-w64(`x86_64-pc-windows-gnu`) - Linux:`libxkbcommon-dev libfontconfig1-dev libgl1-mesa-dev libegl1-mesa-dev libwayland-dev - libxcb1-dev`——两套 UI 都要用(Slint 的 winit + femtovg,iced 的 winit + wgpu/tiny-skia) + libxcb1-dev`——winit + wgpu/tiny-skia 编译期要用(Slint 版当年还要 femtovg) ```bash cargo fmt --all --check # 格式 cargo clippy --workspace --all-targets -- -D warnings # 静态检查(零 warning 门禁) cargo test --workspace # 测试 -cargo build --release # 三个 bin 都落在 target/release/ +cargo build --release # bin 落在 target/release/ ``` -编出来的三个 bin: +`--workspace` 就是模块地图里那八个成员:`crates/app` 已在 workspace 层被排除(M118),上面这些命令 +都不会编 Slint 那棵树——而且**它没有构建方式**:该 crate 只作源码参考,作为 workspace 成员已不可编。 -- `unlucky-launcher`——Slint 版(已发布的那个)。它同时也是 CLI:同一个二进制认上面列的全部子命令。 -- `unlucky-launcher-iced`——iced 版骨架。名字是临时的:只有翻牌时才能改成 `unlucky-launcher`, - 因为同一个工作区里两个 crate 不能往同一个 target 目录里产出同名 bin。子命令分发同款。 +编出来的 bin: + +- `unlucky-launcher-iced`——GUI(iced)。它同时也是 CLI:同一个二进制认上面列的全部子命令。名字是 + 临时的,翻牌时才改成 `unlucky-launcher`;发布产物**已经**用对外名:流水线编这个 bin, + `packaging/make_artifacts.py` 落盘时改成 `unlucky-launcher[.exe]`,所以下载链接不用变。 +- `unlucky-launcher`——**历史**:workspace 构建已不产出它(它属于被排除的 `crates/app`)。 + `v0.1.0` 的资产是最后一批用这个名字发出去的构建。 - `ull`——CLI 的独立无 UI 构建:同一套命令、不链接图形栈、体积更小,给完全没有显示设备的机器用。 渲染开关: -- `unlucky-launcher --software-renderer`(等价于 `SLINT_BACKEND=winit-software`)强制 Slint 版走 CPU - `unlucky-launcher-iced --software-renderer` 强制 tiny-skia(`ICED_BACKEND=tiny-skia`); - `--screenshot ` 出一帧图后退出,这是验收通道 -- 两套栈在没有可用适配器时都会退到 CPU:Slint 版走它自己的渲染器回退链,iced 版走显式探测 + `--screenshot ` 出一帧图后退出,这是 CI 无头冒烟 job 用的验收通道 +- 没有可用适配器时,iced 版靠显式后端探测自己退到 CPU +- **历史**(`v0.1.0` 的 Slint 版仍认这条):`unlucky-launcher --software-renderer`,即 + `SLINT_BACKEND=winit-software`,让那一版走它自己的渲染器回退链 依赖许可检查(本地可选,CI 必跑):`cargo deny check licenses bans sources`。 @@ -188,7 +203,9 @@ cargo build --release # 三个 bin 都落在 ta - **本项目**:Apache License 2.0,见 [LICENSE](LICENSE);第三方声明见 [NOTICE](NOTICE)。 - **Slint**(),Royalty-Free 2.0:v0.1.0 发布的正是 Slint 版,这项义务继续有效 ——关于页放 `AboutSlint` 部件(尚未落地),在此之前由 NOTICE、本节与发布页的「Made with Slint」 - 说明承担告知义务。只要还有链接 Slint 的产物在发,这条义务就保留。 + 说明承担告知义务。义务跟着**链接了 Slint 的产物**走:已发布的 `v0.1.0` 资产(以及将来任何重新链接 + Slint 的构建)适用;`crates/app` 已被 workspace `exclude`,流水线不再产出链接 Slint 的二进制, + 所以新的 iced 版产物不适用这一条。 - **iced**(),MIT:下一代 UI 的框架;与它同栈的 `winit`、以及经它 引入的 `wgpu` / `tiny-skia`(Apache-2.0 / MIT)。 - **Google Material Color Utilities**(Apache-2.0):`crates/design` 的色彩令牌是它 HCT / diff --git a/packaging/README.md b/packaging/README.md index 2469991..9445cb5 100644 --- a/packaging/README.md +++ b/packaging/README.md @@ -25,8 +25,8 @@ - 归档解压后是**一个顶层目录** `unlucky-launcher--<槽位>/`,用户不会解压出一堆散文件。 - **`ull` 是并列的裸资产,不塞进 tar.gz**:headless 用户要的就是「下一个小文件直接跑」;归档里放 LICENSE/NOTICE/README.md 是许可义务,而这三份本来就作为并列 Release 资产分发,裸 `ull` 不缺条款。 -- `unlucky-launcher` 本体也认全部 CLI 子命令(M82),`ull` 不是第二个界面,而是**不链接图形栈**的 - 同一套命令(差异见 §4 与 §7.4)——两者都不是重复品。 +- `unlucky-launcher` 本体也认全部 CLI 子命令(M82),`ull` 不是第二个界面,而是**不链接图形栈**的同一套命令(差异见 §4 与 §7.4),两者不是重复品。 + M118:GUI 的**构建产物**名是 `unlucky-launcher-iced`(`crates/app` 已被 workspace `exclude`,不再产出 `unlucky-launcher`);对外文件名仍是 `unlucky-launcher`,改名在 `make_artifacts.py` 落盘时(`LAUNCHER_BIN` 找产物 / `LAUNCHER_ASSET` 定对外名),所以下载链接 / `SHA256SUMS` / 本文矩阵不变。 - `` 不带前导 `v`(tag 是 `v0.1.0`,文件名是 `0.1.0`)——由脚本统一裁剪。 - UNIX 归档内 `mtime`/`uid`/`gid` 归零、权限固定(二进制 0755、文本 0644), 同源构建的 sha256 不受打包时刻影响。 @@ -51,7 +51,7 @@ ### 本地(当前平台) ```bash -cargo build --release --locked # 产出 target/release/{unlucky-launcher,ull,unlucky-launcher-iced} +cargo build --release --locked # 产出 target/release/{unlucky-launcher-iced,ull}(M118:Slint 版不再进 workspace) cargo build --profile fast --bins # 只是想快点看到画面/跑测试:快档(§6),产物在 target/fast/ python packaging/make_artifacts.py --out dist # 产物落在 dist/,含 SHA256SUMS.txt python packaging/make_artifacts.py --version v0.1.0 # 顺带校验版本一致性 @@ -67,7 +67,7 @@ macOS x64),其它组合直接报错退出——不在矩阵里的平台不 ```bash rustup target add aarch64-pc-windows-msvc cargo build --release --locked --target aarch64-pc-windows-msvc \ - --bin unlucky-launcher --bin ull # 不用 --bins:发布矩阵只发 GUI + ull,iced 不进产物 + --bin unlucky-launcher-iced --bin ull # 不用 --bins:矩阵只发 GUI + ull;GUI 的构建产物名是 iced 的 bin(M118) python packaging/make_artifacts.py --slot windows-arm64 \ --build-dir target/aarch64-pc-windows-msvc/release --out dist ``` @@ -181,7 +181,7 @@ macOS 产物是**裸二进制**而非 `.app` bundle:符合单文件承诺, ## 5. 软渲染兜底(无 GPU / 老驱动 / 远程桌面) -Slint 默认 `renderer-femtovg`(GL)。两条兜底路径,效果等价,任选其一: +M118(D26):以下是**历史实现(Slint 版,默认 `renderer-femtovg`/GL)**的兜底路径,已不在默认构建与发布矩阵内(`crates/app` 被 workspace `exclude`,源码仅作参考、不编译)。现役 GUI 是 iced 版:`unlucky-launcher-iced --software-renderer`(= `ICED_BACKEND=tiny-skia`)走 tiny-skia 光栅化。v0.1.0 的产物仍认下面两条: ```bash unlucky-launcher --software-renderer # 启动参数(本仓库解析后设 SLINT_BACKEND) @@ -190,9 +190,8 @@ SLINT_BACKEND=winit-software unlucky-launcher # 环境变量(Slint - 参数解析在 `crates/app/src/main.rs` 的 `apply_renderer_flag()`,只认完全相等的 `--software-renderer`。 - 软渲染是 CPU 光栅化,无 GPU 也能出图;代价是动画与大窗口重绘更慢(Metro 纯色界面影响有限)。 -- 验收/无交互桌面场景另有进程内截图通道:`--screenshot `(见 `crates/app/src/screenshot.rs`), - 它同样能在软渲染下工作,是 CI 与远程机唯一可靠的"真出图"证据。 -- 发布冒烟(本机实跑,见 §7)就是用 `--software-renderer --screenshot` 组合证明"无 GPU 也能起来"。 +- 截图通道 `--screenshot `:历史实现 `crates/app/src/screenshot.rs`,现役 `crates/app-iced/src/shot/`; + 软渲染下照样出图,是 CI 与远程机唯一可靠的"真出图"证据(发布冒烟见 §7,本机实跑 `--software-renderer --screenshot`)。 ## 6. Cargo 构建档位(release 体积档 / fast 速度档) @@ -237,14 +236,14 @@ SLINT_BACKEND=winit-software unlucky-launcher # 环境变量(Slint ① **依赖 opt-level 从 3 退回 `"z"` 又快 29.6% 又小 19~24%**(两臂同为 cu16,唯一自变量是 opt-level)——抬 opt-level 是拿编译时间和体积换运行期; `cu1 → cu16` 的收益本轮**没有同条件对照**,未归因。② `fast` **冷编译比 `release` 还慢**(24m27s vs 16m01s)、体积 2.3 倍,瓶颈在两个大 UI crate + 链接 + 机械盘 IO——定位是 **SSD 机器与增量重编**,不是冷编译加速。体积归因:GUI 相对旧基线 +12.9%(13.92 → 15.72 MiB)里 -「代码增长」与「依赖 cu16」**未分离**;`ull` 只 +1.7%,在 +1~3% 口径内。体积构成:Slint 运行时(双渲染器 + winit/accesskit/托盘)+ rustls/reqwest + rig/rmcp/axum 为主,`ull` 更小是 D18(CLI 零 UI 依赖)的结果。 +「代码增长」与「依赖 cu16」**未分离**;`ull` 只 +1.7%,在 +1~3% 口径内。体积构成(**M118 前的 Slint 版,历史数**):Slint 运行时(双渲染器 + winit/accesskit/托盘)+ rustls/reqwest + rig/rmcp/axum 为主,`ull` 更小是 D18(CLI 零 UI 依赖)的结果。 ### 7.2 冒烟(真跑,2026-10-31 夜间 + 11-01 早,本机 Win11 26100) | 命令 | 实测结果 | |------|---------| | `ull.exe --version` | 输出 `ull 0.1.0(unlucky-cli)` + `os: Windows 11 · 10.0.26100(x86_64)· 满足最低要求`,exit 0 —— 版本与 workspace `0.1.0` 一致 | -| `unlucky-launcher.exe --software-renderer --screenshot … --data-dir …` | exit 0,产出 1180×760 PNG(3,588,298 B);看图确认 Metro 实例页(侧栏/搜索/空态/AI 助手面板)正常渲染 → **软渲染路径真的能出图**,不依赖 GL | +| `unlucky-launcher.exe --software-renderer --screenshot … --data-dir …`(Slint 版,历史实测) | exit 0,产出 1180×760 PNG(3,588,298 B);看图确认 Metro 实例页(侧栏/搜索/空态/AI 助手面板)正常渲染 → **软渲染路径真的能出图**,不依赖 GL | | `unlucky-launcher.exe --version` | **无输出**,8 秒后被 timeout 杀掉(exit 124)——GUI 当时不解析 `--version`,会直接开窗口。M82 后已修(走 CLI 分发,见 §10-1)| ### 7.3 打包验证(本机 Windows 槽位真跑) @@ -280,7 +279,7 @@ CI 的 MSVC `+crt-static` 产物同理(静态 CRT);`release.yml` 里用 `d 总之不允许"悄悄要用户装可再发行包"。 注意:本机只装了 GNU 工具链,MSVC 那个槽位的产物本身**没有在本机验证过**,由 CI 首跑验证。 -Linux 侧同一件事的对照(M82 实测:`readelf -d` + `ldd` + `nm -D`,容器内 Debian 12 glibc 2.36):Slint +Linux 侧同一件事的对照(M82 实测:`readelf -d` + `ldd` + `nm -D`,容器内 Debian 12 glibc 2.36;被测的是 **Slint 版 GUI,历史实测**):Slint GUI 的 ELF `DT_NEEDED` 只有 `libfontconfig.so.1` / `libgcc_s.so.1` / `libm.so.6` / `libc.so.6` / `ld-linux-x86-64.so.2`;`libX11` / `libxcb` / `libxkbcommon` / `libwayland-client` / `libGL` / `libEGL` **都不在**导入表里,而是以字符串形式由 `dlopen` 在开窗那一刻加载(`nm -D` 可见 `U dlopen@GLIBC_2.34` / @@ -318,6 +317,7 @@ merge 后由 tower 重指 tag 重跑流水线,两槽位进 `SHA256SUMS.txt` 三份文本在 UNIX 归档内、在 Windows 侧作为并列 Release 资产。 - Slint 的 RF 2.0 义务:关于页保留 `AboutSlint` 部件(已在 UI 内),不得移除; 选 RF 分支即不触发 GPL 分支义务(见 `deny.toml` 的许可证白名单注释)。 +- **M118 后这条义务只跟着已发布的 `v0.1.0` 资产走**:`crates/app` 已被 workspace `exclude`,发布矩阵里再没有链接 Slint 的二进制,新的 iced 版产物不链接 Slint;`deny.toml` 那条 RF-2.0 allow 因此暂时是死条目(不删,留给将来真有别的路径引入 Slint 时兜底)。 - `README.md`(英文主版)随包分发;中文版 `README.zh-CN.md` 留在仓库不进包(避免包体噪音)。 - 依赖许可门禁不变:`deny.toml` 白名单(Apache-2.0 / MIT / BSD / Zlib / BSL-1.0 / ISC / CC0 / Unlicense / Unicode-3.0 / CDLA-Permissive-2.0 / Slint-RF-2.0)。发布任务不新增任何依赖。 diff --git a/packaging/make_artifacts.py b/packaging/make_artifacts.py index 69eb11a..2db5752 100644 --- a/packaging/make_artifacts.py +++ b/packaging/make_artifacts.py @@ -54,7 +54,13 @@ import tarfile from pathlib import Path from typing import NoReturn -LAUNCHER_BIN = "unlucky-launcher" +# M118(D26):GUI 的**构建产物**名是 iced 版的 `unlucky-launcher-iced`。旧值 `unlucky-launcher` +# 是 `crates/app`(Slint 退役树)的 bin —— 那棵树已被根 Cargo.toml `exclude`,再也不产出它了。 +# **对外**文件名仍叫 `unlucky-launcher`:下载链接 / SHA256SUMS / README 都绑着这个名字, +# 改名是「翻牌」那一步的事,不是打包这一步的事。所以刻意拆成两个常量: +# 找文件用 LAUNCHER_BIN,落盘(tar 内文件名 / exe 资产名)用 LAUNCHER_ASSET。 +LAUNCHER_BIN = "unlucky-launcher-iced" +LAUNCHER_ASSET = "unlucky-launcher" CLI_BIN = "ull" # 随包分发的合规文本(仓库根目录);英文主版 README 是对外分发口径。 COMPLIANCE_DOCS = ("LICENSE", "NOTICE", "README.md") @@ -216,7 +222,7 @@ def stage_archive(out_dir: Path, tag: str, version: str, launcher: Path) -> Path if stage.exists(): shutil.rmtree(stage) stage.mkdir(parents=True) - shutil.copy2(launcher, stage / launcher.name) + shutil.copy2(launcher, stage / LAUNCHER_ASSET) for doc in COMPLIANCE_DOCS: source = REPO_ROOT / doc if not source.is_file(): @@ -232,7 +238,7 @@ def stage_archive(out_dir: Path, tag: str, version: str, launcher: Path) -> Path info.mtime = 0 info.uid = info.gid = 0 info.uname = info.gname = "" - info.mode = 0o755 if entry.name == launcher.name else 0o644 + info.mode = 0o755 if entry.name == LAUNCHER_ASSET else 0o644 with entry.open("rb") as handle: tar.addfile(info, handle) shutil.rmtree(stage)