公开记录
软件健康报告模式 0.31.0 · 指标 2.5.0 · 2026-08-06 05:33 UTC

emilk / egui

egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

RustApache-2.0★ 29,979 星标⑂ 2,097 复刻始于 2019年1月在 GitHub 上查看 ↗
类型桌面应用如何判定

emilk/egui 的健康指数为 100 分中的 94 分,处于「卓越」区间。 其得分最高的类别是Vitality(98/100),最低的是AI Readiness(59/100)。 最近一次更新在今天。 近期的大部分工作由 1 位贡献者完成。

94
总分 / 100
卓越

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均,再依据公开记录的分布进行校准,使各等级具有百分位含义;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 34(存在风险)的上限。

94
卓越93-100公开记录中的最高层级(约前 5%);基本满足所有检验标准
优秀80-92各方面均表现强劲;仅有少量不足
良好65-79健康;不足之处有限且可控
中等50-64可接受,但存在明显不足;建议进行审查
薄弱35-49多个领域存在实质性薄弱环节
存在风险20-34存在重大薄弱环节;采用时应保持审慎
危急1-19问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

加权总体分 80 经校准后在公布的指数量表上为 94(记录校准 2026-08-02)。

所有权

Emil Ernerfeldt个人账户
7,863 关注者84 个公开仓库始于 2011年10月Rerun.io, egui

该仓库由个人账户拥有。相较于组织支持的项目,单一所有者项目的延续性风险更高。

软件包生态系统

注册表软件包版本月下载量版本数最近发布标签
crates.ioxtask指向其他仓库——不计分0.1.4216536 天前automationcodesignmacosreleasextaskcommand-line-utilities
crates.ioegui0.36.01,540,775640 天前gamedevguiimguiimmediateportablegame-development
crates.ioemath0.36.01,610,492470 天前guimathmathematics
crates.ioecolor0.36.01,545,443350 天前colorconversiongamedevguiimagesencodingmathematics
crates.ioeframe0.36.01,264,323530 天前eguigamedevguigame-development
crates.ioepaint0.36.01,542,722480 天前eguigraphicsgui
crates.ioegui-wgpu0.36.01,064,217440 天前eguigamedevguiwgpugame-development
crates.ioegui_glow0.36.01,273,200420 天前eguigamedevglowguigame-development
crates.ioegui-winit0.36.01,370,231500 天前eguigamedevguiwinitgame-development

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

98卓越 · 占总体的 21%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
32.5/36提交节奏 — 52 周中有 47 周有提交
18/18提交量 — 最近一年 471 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year471
human_commit_share1
days_since_last_push0
active_weeks_last_year47

发布纪律

100卓越
评分方式
27/27有发布版本 — 已发布 43 个发布版本
36/36发布时效 — 最近一次发布版本于 0 天前
27/27发布节奏 — 约每 36.4 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count43
latest_release_tag0.36.0
releases_from_tags
days_since_latest_release0
mean_days_between_releases36.4
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

96卓越 · 占总体的 17%
评分方式
60/60星标 — 29,979 个星标
25/25复刻 — 2,097 个复刻
12/15关注者 — 144 位关注者
所用输入
forks2,097
stars29,979
watchers144
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

92优秀
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(Apache-2.0)
18/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
readme_badges7
has_contributing
has_issue_template
has_code_of_conduct
readme_badge_servicesgithub.com, shields.io
has_pull_request_template
评分方式
80/80月度下载量 — crates 合计每月 11,211,403 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagesegui, emath, ecolor, eframe, epaint, egui-wgpu, egui_glow, egui-winit
dependents
ecosystemscrates
total_downloads143,530,676
monthly_downloads11,211,403
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

68良好 · 占总体的 23%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
4.8/22.5提交分布 — 头号贡献者编写了 78% 的提交
13.5/13.5贡献者广度 — 99 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 44 contributing companies or organizations
所用输入
bus_factor1
contributors_sampled99
top_contributor_share0.785
评分方式
26.9/42议题解决 — 64% 的议题已关闭
24.4/30PR 接受 — 已裁定的 PR 中 2,355/2,893 已合并
10.4/13Newcomer PR acceptance — 30 天内首次贡献者的 PR 已合并 4/5
9/15OpenSSF Scorecard:Code-Review — Found 20/30 approved changesets -- score normalized to 6
所用输入
merged_prs2,355
open_issues930
closed_issues1,662
prs_merged_7d29
prs_decided_7d33
prs_merged_30d29
prs_decided_30d34
issue_closed_ratio0.641
closed_unmerged_prs538
first_time_authors_30d5
first_time_prs_merged_30d4
first_time_prs_decided_30d5
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
25/25所有者影响力 — emilk 有 7,863 位关注者
25/25既往记录 — 84 个公开仓库,账户约 14 年
所用输入
followers7,863
owner_typeUser
is_verified
owner_loginemilk
public_repos84
account_age_days5,399
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — crates 上有 8 个软件包
35/35发布时效 — 最近一次发布于 0 天前
20/20版本历史 — 64 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesegui, emath, ecolor, eframe, epaint, egui-wgpu, egui_glow, egui-winit
ecosystemscrates
any_deprecated
min_days_since_publish0

工程质量

基础的工程与文档实践是否到位?

81优秀 · 占总体的 19%

工程实践

68良好
评分方式
24/24CI 工作流 — 14 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
0/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

100卓越
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://www.egui.rs/
10/10仓库描述
10/10主题标签 — 7 个主题标签
10/10Wiki
所用输入
topicsgui, rust, game-development, wasm, imgui, gamedev, egui
has_wiki
homepagehttps://www.egui.rs/
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

60中等 · 占总体的 16%

安全态势

50中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
4.5/7.5Code-Review — Found 20/30 approved changesets -- score normalized to 6
2.5/2.5Contributors — project has 44 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
2.2/7.5Vulnerabilities — 7 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5.1
已排除计分(无数据或不适用):packaging, signed_releases。 其余权重已重新归一化。
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories7
affected_packages6
assessed_packages561
unassessed_packages0
affected_by_severityhigh 1, unknown 5
direct_affected_packages0
已排除计分(无数据或不适用):间接依赖不含已知公告, 没有长期未处理的公告。 其余权重已重新归一化。 已将 561 个已解析依赖与 OSV 比对。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?权重刻意设小(4%):代理工具链是一项真实的维护信号,但完全不具备的仓库仍可达到 100/100。

59中等 · 占总体的 4%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 100 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
评分方式
12.6/18一条命令的引导启动 — Cargo.toml, crates/ecolor/Cargo.toml, crates/eframe/Cargo.toml(工具链约定,无任务运行器)
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — Rust(静态类型)
10/10可复现环境 — lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 28 次由代理编写或署名代理
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfilesCargo.lock
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0.28
toolchain_manifestsCargo.toml, crates/ecolor/Cargo.toml, crates/eframe/Cargo.toml, crates/egui-wgpu/Cargo.toml, crates/egui-winit/Cargo.toml, crates/egui/Cargo.toml, crates/egui_demo_app/Cargo.toml, crates/egui_demo_lib/Cargo.toml, crates/egui_extras/Cargo.toml, crates/egui_glow/Cargo.toml, crates/egui_inspection/Cargo.toml, crates/egui_kittest/Cargo.toml, crates/emath/Cargo.toml, crates/epaint/Cargo.toml, crates/epaint_default_fonts/Cargo.toml, examples/confirm_exit/Cargo.toml, examples/custom_3d_glow/Cargo.toml, examples/custom_font/Cargo.toml, examples/custom_font_style/Cargo.toml, examples/custom_keypad/Cargo.toml, examples/custom_style/Cargo.toml, examples/custom_window_frame/Cargo.toml, examples/external_eventloop/Cargo.toml, examples/external_eventloop_async/Cargo.toml, examples/file_dialog/Cargo.toml, examples/font_variations/Cargo.toml, examples/hello_android/Cargo.toml, examples/hello_world/Cargo.toml, examples/hello_world_par/Cargo.toml, examples/hello_world_simple/Cargo.toml, examples/images/Cargo.toml, examples/keyboard_events/Cargo.toml, examples/multiple_viewports/Cargo.toml, examples/popups/Cargo.toml, examples/puffin_profiler/Cargo.toml, examples/screenshot/Cargo.toml, examples/serial_windows/Cargo.toml, examples/user_attention/Cargo.toml, tests/egui_tests/Cargo.toml, tests/test_background_logic/Cargo.toml, tests/test_egui_extras_compilation/Cargo.toml, tests/test_inline_glow_paint/Cargo.toml, tests/test_size_pass/Cargo.toml, tests/test_ui_stack/Cargo.toml, tests/test_viewports/Cargo.toml, xtask/Cargo.toml
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — Rust(静态类型)
53.7/55可控的文件大小 — 采样的 376 个源文件中有 9 个超过 60KB
所用输入
primary_languageRust
largest_source_bytes172,007
source_files_sampled376
oversized_source_files9
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — demos, examples
所用输入
example_dirsdemos, examples
has_mcp_signal
api_schema_files

关键数据

29,979GitHub 星标
99贡献者
471最近 12 个月提交数
0距最近推送天数
43发布版本数
1巴士系数(bus factor)
930开放议题
crates.io软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • First-time contributor figures cover 12 of 13 authors (cap 12)
  • crates package 'xtask' points at a different repository (https://github.com/arcboxlabs/xtask); excluded from ecosystem scoring
  • deps.dev does not index crates:egui@0.36.0; advisories assessed against the repository dependency graph instead

更多细节

Star 与 Fork 历史 0 ★ / 2,097 ⇿
0Star
2,097Fork
29发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

仅显示最近的历史——该仓库超出采集窗口,因此未采集最早的历史记录。

1,0001,2001,4001,6001,8002,0002,2002,097102023-112025-032026-08
主版本 0次版本 12修订 16

每个点涵盖 3 天。

OpenSSF Scorecard 5.1 / 10
5.1综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-08-06 05:33 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
6Code-ReviewFound 20/30 approved changesets -- score normalized to 6
10Contributorsproject has 44 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
3Vulnerabilities7 existing vulnerabilities detected
直接依赖 146
注册表软件包版本约束清单文件
crates.ioemathcrates/ecolor/Cargo.toml
crates.iobytemuckcrates/ecolor/Cargo.toml
crates.iocintcrates/ecolor/Cargo.toml
crates.iocolor-hexcrates/ecolor/Cargo.toml
crates.iodocument-featurescrates/ecolor/Cargo.toml
crates.ioserdecrates/ecolor/Cargo.toml
crates.ioeguicrates/eframe/Cargo.toml
crates.ioahashcrates/eframe/Cargo.toml
crates.iodocument-featurescrates/eframe/Cargo.toml
crates.iologcrates/eframe/Cargo.toml
crates.ioparking_lotcrates/eframe/Cargo.toml
crates.ioprofilingcrates/eframe/Cargo.toml
crates.ioraw-window-handlecrates/eframe/Cargo.toml
crates.iostatic_assertionscrates/eframe/Cargo.toml
crates.ioweb-timecrates/eframe/Cargo.toml
crates.ioegui_glowcrates/eframe/Cargo.toml
crates.ioegui_inspectioncrates/eframe/Cargo.toml
crates.ioglowcrates/eframe/Cargo.toml
crates.ioroncrates/eframe/Cargo.toml
crates.ioserdecrates/eframe/Cargo.toml
crates.ioepaintcrates/egui-wgpu/Cargo.toml
crates.ioahashcrates/egui-wgpu/Cargo.toml
crates.iobytemuckcrates/egui-wgpu/Cargo.toml
crates.iodocument-featurescrates/egui-wgpu/Cargo.toml
crates.iologcrates/egui-wgpu/Cargo.toml
crates.ioprofilingcrates/egui-wgpu/Cargo.toml
crates.iothiserrorcrates/egui-wgpu/Cargo.toml
crates.iotype-mapcrates/egui-wgpu/Cargo.toml
crates.ioweb-timecrates/egui-wgpu/Cargo.toml
crates.iowgpucrates/egui-wgpu/Cargo.toml
crates.ioeguicrates/egui-wgpu/Cargo.toml
crates.iowinitcrates/egui-wgpu/Cargo.toml
crates.ioeguicrates/egui-winit/Cargo.toml
crates.iologcrates/egui-winit/Cargo.toml
crates.ioprofilingcrates/egui-winit/Cargo.toml
crates.ioraw-window-handlecrates/egui-winit/Cargo.toml
crates.ioweb-timecrates/egui-winit/Cargo.toml
crates.iowinitcrates/egui-winit/Cargo.toml
crates.ioaccesskit_winitcrates/egui-winit/Cargo.toml
crates.iobytemuckcrates/egui-winit/Cargo.toml
crates.iodocument-featurescrates/egui-winit/Cargo.toml
crates.ioserdecrates/egui-winit/Cargo.toml
crates.iowebbrowsercrates/egui-winit/Cargo.toml
crates.ioemathcrates/egui/Cargo.toml
crates.ioepaintcrates/egui/Cargo.toml
crates.ioaccesskitcrates/egui/Cargo.toml
crates.ioahashcrates/egui/Cargo.toml
crates.iobitflagscrates/egui/Cargo.toml
crates.ioitertoolscrates/egui/Cargo.toml
crates.iologcrates/egui/Cargo.toml
crates.ionohash-hashercrates/egui/Cargo.toml
crates.ioprofilingcrates/egui/Cargo.toml
crates.iosmallveccrates/egui/Cargo.toml
crates.iounicode-segmentationcrates/egui/Cargo.toml
crates.iobacktracecrates/egui/Cargo.toml
crates.iodocument-featurescrates/egui/Cargo.toml
crates.ioroncrates/egui/Cargo.toml
crates.ioserdecrates/egui/Cargo.toml
crates.ioeframecrates/egui_demo_app/Cargo.toml
crates.ioeguicrates/egui_demo_app/Cargo.toml
crates.ioegui_demo_libcrates/egui_demo_app/Cargo.toml
crates.ioegui_extrascrates/egui_demo_app/Cargo.toml
crates.ioimagecrates/egui_demo_app/Cargo.toml
crates.iojiffcrates/egui_demo_app/Cargo.toml
crates.iologcrates/egui_demo_app/Cargo.toml
crates.ioprofilingcrates/egui_demo_app/Cargo.toml
crates.ioaccesskitcrates/egui_demo_app/Cargo.toml
crates.ioaccesskit_consumercrates/egui_demo_app/Cargo.toml
crates.iobytemuckcrates/egui_demo_app/Cargo.toml
crates.iopuffincrates/egui_demo_app/Cargo.toml
crates.iopuffin_httpcrates/egui_demo_app/Cargo.toml
crates.ioehttpcrates/egui_demo_app/Cargo.toml
crates.iopoll-promisecrates/egui_demo_app/Cargo.toml
crates.ioserdecrates/egui_demo_app/Cargo.toml
crates.ioeguicrates/egui_demo_lib/Cargo.toml
crates.ioegui_extrascrates/egui_demo_lib/Cargo.toml
crates.iologcrates/egui_demo_lib/Cargo.toml
crates.iounicode_names2crates/egui_demo_lib/Cargo.toml
crates.iojiffcrates/egui_demo_lib/Cargo.toml
crates.iodocument-featurescrates/egui_demo_lib/Cargo.toml
crates.ioserdecrates/egui_demo_lib/Cargo.toml
crates.ioeguicrates/egui_extras/Cargo.toml
crates.ioahashcrates/egui_extras/Cargo.toml
crates.ioenum-mapcrates/egui_extras/Cargo.toml
crates.ioitertoolscrates/egui_extras/Cargo.toml
crates.iologcrates/egui_extras/Cargo.toml
crates.ioprofilingcrates/egui_extras/Cargo.toml
crates.ioserdecrates/egui_extras/Cargo.toml
crates.iojiffcrates/egui_extras/Cargo.toml
crates.iodocument-featurescrates/egui_extras/Cargo.toml
crates.ioimagecrates/egui_extras/Cargo.toml
crates.iomime_guess2crates/egui_extras/Cargo.toml
crates.iosyntectcrates/egui_extras/Cargo.toml
crates.ioresvgcrates/egui_extras/Cargo.toml
crates.ioehttpcrates/egui_extras/Cargo.toml
crates.ioeguicrates/egui_glow/Cargo.toml
crates.ioegui-winitcrates/egui_glow/Cargo.toml
crates.iobytemuckcrates/egui_glow/Cargo.toml
crates.ioglowcrates/egui_glow/Cargo.toml
crates.iologcrates/egui_glow/Cargo.toml
crates.ioprofilingcrates/egui_glow/Cargo.toml
crates.iodocument-featurescrates/egui_glow/Cargo.toml
crates.iowinitcrates/egui_glow/Cargo.toml
crates.ioeguicrates/egui_inspection/Cargo.toml
crates.ioserdecrates/egui_inspection/Cargo.toml
crates.ioserde_bytescrates/egui_inspection/Cargo.toml
crates.iormp-serdecrates/egui_inspection/Cargo.toml
crates.ioimagecrates/egui_inspection/Cargo.toml
crates.iologcrates/egui_inspection/Cargo.toml
crates.iodocument-featurescrates/egui_inspection/Cargo.toml
crates.ioeguicrates/egui_kittest/Cargo.toml
crates.ioeframecrates/egui_kittest/Cargo.toml
crates.iokittestcrates/egui_kittest/Cargo.toml
crates.iologcrates/egui_kittest/Cargo.toml
crates.ioserdecrates/egui_kittest/Cargo.toml
crates.iotomlcrates/egui_kittest/Cargo.toml
crates.ioegui-wgpucrates/egui_kittest/Cargo.toml
crates.iopollstercrates/egui_kittest/Cargo.toml
crates.ioimagecrates/egui_kittest/Cargo.toml
crates.iowgpucrates/egui_kittest/Cargo.toml
crates.iodifycrates/egui_kittest/Cargo.toml
crates.iodocument-featurescrates/egui_kittest/Cargo.toml
crates.iobytemuckcrates/emath/Cargo.toml
crates.iodocument-featurescrates/emath/Cargo.toml
crates.iomintcrates/emath/Cargo.toml
crates.ioserdecrates/emath/Cargo.toml
crates.ioemathcrates/epaint/Cargo.toml
crates.ioecolorcrates/epaint/Cargo.toml
crates.ioahashcrates/epaint/Cargo.toml
crates.iofont-typescrates/epaint/Cargo.toml
crates.ioharfrustcrates/epaint/Cargo.toml
crates.iologcrates/epaint/Cargo.toml
crates.ionohash-hashercrates/epaint/Cargo.toml
crates.ioparking_lotcrates/epaint/Cargo.toml
crates.ioprofilingcrates/epaint/Cargo.toml
crates.ioself_cellcrates/epaint/Cargo.toml
crates.ioskrifacrates/epaint/Cargo.toml
crates.iosmallveccrates/epaint/Cargo.toml
crates.iounicode-general-categorycrates/epaint/Cargo.toml
crates.iounicode-segmentationcrates/epaint/Cargo.toml
crates.iovello_cpucrates/epaint/Cargo.toml
crates.iobytemuckcrates/epaint/Cargo.toml
crates.iodocument-featurescrates/epaint/Cargo.toml
crates.iorayoncrates/epaint/Cargo.toml
crates.ioserdecrates/epaint/Cargo.toml
crates.ioepaint_default_fontscrates/epaint/Cargo.toml
全部依赖 561

来自 GitHub 依赖图的完整解析依赖集合:58 个直接依赖与 503 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
crates.ioaccesskit0.24.1直接
crates.ioaccesskit_consumer0.35.0直接
crates.ioaccesskit_winit0.32.2直接
crates.ioahash0.8.12直接
crates.iobacktrace0.3.76直接
crates.iobitflags1.3.2直接
crates.iobitflags2.13.1直接
crates.iobytemuck1.25.2直接
crates.iocint0.3.1直接
crates.iocolor-hex0.2.0直接
crates.iodify0.8.0直接
crates.iodocument-features0.2.12直接
crates.ioehttp0.7.1直接
crates.ioenum-map2.7.3直接
crates.iofont-types0.12.2直接
crates.ioglow0.17.0直接
crates.ioharfrust0.12.0直接
crates.ioimage0.25.6直接
crates.ioitertools0.13.0直接
crates.ioitertools0.14.0直接
crates.ioitertools0.15.0直接
crates.iojiff0.2.35直接
crates.iokittest0.4.0直接
crates.iolog0.4.33直接
crates.iomime_guess22.3.1直接
crates.iomint0.5.9直接
crates.ionohash-hasher0.2.0直接
crates.ioparking_lot0.12.5直接
crates.iopoll-promise0.3.0直接
crates.iopollster0.4.0直接
crates.iopollster1.0.1直接
crates.ioprofiling1.0.18直接
crates.iopuffin0.20.0直接
crates.iopuffin_http0.17.0直接
crates.ioraw-window-handle0.6.2直接
crates.iorayon1.12.0直接
crates.ioresvg0.45.1直接
crates.iormp-serde1.3.1直接
crates.ioron0.12.2直接
crates.ioself_cell1.3.0直接
crates.ioserde1.0.228直接
crates.ioserde_bytes0.11.19直接
crates.ioskrifa0.44.0直接
crates.iosmallvec1.15.2直接
crates.iostatic_assertions1.1.0直接
crates.iosyntect5.3.0直接
crates.iothiserror1.0.69直接
crates.iothiserror2.0.18直接
crates.iotoml1.1.4+spec-1.1.0直接
crates.iotype-map0.5.1直接
crates.iounicode-general-category1.1.0直接
crates.iounicode-segmentation1.13.3直接
crates.iounicode_names23.1.0直接
crates.iovello_cpu0.1.0直接
crates.ioweb-time1.1.0直接
crates.iowebbrowser1.2.1直接
crates.iowgpu30.0.0直接
crates.iowinit0.30.13直接
crates.ioab_glyph0.2.32间接
crates.ioab_glyph_rasterizer0.1.10间接
crates.ioaccesskit_atspi_common0.18.0间接
crates.ioaccesskit_macos0.26.0间接
crates.ioaccesskit_unix0.21.0间接
crates.ioaccesskit_windows0.32.1间接
crates.ioaddr2line0.25.1间接
crates.ioadler22.0.1间接
crates.ioaho-corasick1.1.4间接
crates.ioalloca0.4.0间接
crates.ioallocator-api20.2.21间接
crates.ioandroid-activity0.6.1间接
crates.ioandroid-properties0.2.2间接
crates.ioandroid_log-sys0.3.2间接
crates.ioandroid_logger0.15.1间接
crates.ioandroid_system_properties0.1.5间接
crates.ioanes0.1.6间接
crates.ioanstream0.6.21间接
crates.ioanstyle1.0.14间接
crates.ioanstyle-parse0.2.7间接
crates.ioanstyle-query1.1.5间接
crates.ioanstyle-wincon3.0.11间接
crates.ioanyhow1.0.103间接
crates.ioarboard3.6.1间接
crates.ioarrayref0.3.9间接
crates.ioarrayvec0.7.8间接
crates.ioas-raw-xcb-connection1.0.1间接
crates.ioash0.38.0+1.3.281间接
crates.ioasync-broadcast0.7.2间接
crates.ioasync-channel2.5.0间接
crates.ioasync-executor1.14.0间接
crates.ioasync-io2.6.0间接
crates.ioasync-lock3.4.2间接
crates.ioasync-process2.5.0间接
crates.ioasync-recursion1.1.1间接
crates.ioasync-signal0.2.14间接
crates.ioasync-task4.7.1间接
crates.ioasync-trait0.1.89间接
crates.ioatomic-waker1.1.2间接
crates.ioatspi0.29.0间接
crates.ioatspi-common0.13.0间接
crates.ioatspi-proxies0.13.0间接
crates.ioautocfg1.5.1间接
crates.iobase640.22.1间接
crates.iobincode1.3.3间接
crates.iobit-set0.10.0间接
crates.iobit-set0.8.0间接
crates.iobit-vec0.8.0间接
crates.iobit-vec0.9.1间接
crates.ioblock20.5.1间接
crates.ioblock20.6.2间接
crates.ioblocking1.6.2间接
crates.iobstr1.12.3间接
crates.iobumpalo3.20.3间接
crates.iobytemuck_derive1.11.0间接
crates.iobyteorder1.5.0间接
crates.iobyteorder-lite0.1.0间接
crates.iobytes1.12.0间接
crates.iocalloop0.13.0间接
crates.iocalloop-wayland-source0.3.0间接
crates.iocast0.3.0间接
crates.iocc1.4.0间接
crates.iocfg-if1.0.4间接
crates.iocfg_aliases0.2.1间接
crates.iocgl0.3.2间接
crates.iochacha200.10.1间接
crates.iociborium0.2.2间接
crates.iociborium-io0.2.2间接
crates.iociborium-ll0.2.2间接
crates.ioclap4.6.1间接
crates.ioclap_builder4.6.0间接
crates.ioclap_lex1.1.0间接
crates.ioclipboard-win5.4.1间接
crates.iocodespan-reporting0.13.1间接
crates.iocolor0.3.3间接
crates.iocolor_quant1.1.0间接
crates.iocolorchoice1.0.5间接
crates.iocolored2.2.0间接
crates.iocombine4.6.7间接
crates.ioconcurrent-queue2.5.0间接
crates.ioconsole0.16.4间接
crates.iocore-foundation0.10.1间接
crates.iocore-foundation0.9.4间接
crates.iocore-foundation-sys0.8.7间接
crates.iocore-graphics0.23.2间接
crates.iocore-graphics-types0.1.3间接
crates.iocore_maths0.1.1间接
crates.iocpufeatures0.3.0间接
crates.iocrc32fast1.5.0间接
crates.iocriterion0.8.2间接
crates.iocriterion-plot0.8.2间接
crates.iocrossbeam-channel0.5.16间接
crates.iocrossbeam-deque0.8.7间接
crates.iocrossbeam-epoch0.9.20间接
crates.iocrossbeam-utils0.8.22间接
crates.iocrunchy0.2.4间接
crates.iocursor-icon1.2.0间接
crates.iodata-url0.3.2间接
crates.iodefmt1.1.1间接
crates.iodefmt-macros1.1.1间接
crates.iodefmt-parser1.0.0间接
crates.ioderanged0.5.8间接
crates.iodirectories6.0.0间接
crates.iodirs-sys0.5.0间接
crates.iodispatch0.2.0间接
crates.iodispatch20.3.1间接
crates.iodisplaydoc0.2.6间接
crates.iodlib0.5.3间接
crates.iodowncast-rs1.2.1间接
crates.iodpi0.1.2间接
crates.ioeither1.16.0间接
crates.ioencode_unicode1.0.0间接
crates.ioendi1.1.1间接
crates.ioenum-map-derive0.17.0间接
crates.ioenumflags20.7.12间接
crates.ioenumflags2_derive0.7.12间接
crates.ioenumn0.1.14间接
crates.ioenv_filter0.1.4间接
crates.ioenv_logger0.11.8间接
crates.ioequivalent1.0.2间接
crates.ioerrno0.3.14间接
crates.ioerror-code3.3.2间接
crates.ioeuclid0.22.14间接
crates.ioevent-listener5.4.1间接
crates.ioevent-listener-strategy0.5.4间接
crates.iofancy-regex0.16.2间接
crates.iofastrand2.4.1间接
crates.iofdeflate0.3.7间接
crates.iofearless_simd0.4.1间接
crates.iofind-msvc-tools0.1.9间接
crates.ioflate21.1.9间接
crates.iofloat-cmp0.9.0间接
crates.iofnv1.0.7间接
crates.iofoldhash0.2.0间接
crates.iofontconfig-parser0.5.8间接
crates.iofontdb0.23.0间接
crates.ioforeign-types0.5.0间接
crates.ioforeign-types-macros0.2.3间接
crates.ioforeign-types-shared0.3.1间接
crates.ioform_urlencoded1.2.2间接
crates.iofutures-core0.3.33间接
crates.iofutures-io0.3.32间接
crates.iofutures-lite2.6.1间接
crates.iofutures-macro0.3.33间接
crates.iofutures-task0.3.33间接
crates.iofutures-util0.3.33间接
crates.iogethostname1.1.0间接
crates.iogetopts0.2.24间接
crates.iogetrandom0.2.17间接
crates.iogetrandom0.3.4间接
crates.iogetrandom0.4.3间接
crates.iogif0.13.3间接
crates.iogimli0.32.3间接
crates.iogl_generator0.14.0间接
crates.ioglifo0.2.0间接
crates.ioglutin0.32.3间接
crates.ioglutin-winit0.5.0间接
crates.ioglutin_egl_sys0.7.1间接
crates.ioglutin_glx_sys0.6.1间接
crates.ioglutin_wgl_sys0.6.1间接
crates.iogpu-allocator0.28.0间接
crates.ioguillotiere0.7.0间接
crates.iohalf2.7.1间接
crates.iohashbrown0.16.1间接
crates.iohashbrown0.17.1间接
crates.iohermit-abi0.5.2间接
crates.iohex0.4.3间接
crates.iohttp1.4.2间接
crates.iohttparse1.10.1间接
crates.ioicu_collections2.2.0间接
crates.ioicu_locale_core2.2.0间接
crates.ioicu_normalizer2.2.0间接
crates.ioicu_normalizer_data2.2.0间接
crates.ioicu_properties2.2.0间接
crates.ioicu_properties_data2.2.0间接
crates.ioicu_provider2.2.0间接
crates.ioidna1.1.0间接
crates.ioidna_adapter1.2.2间接
crates.ioimage-webp0.2.4间接
crates.ioimagesize0.13.0间接
crates.ioindexmap2.14.0间接
crates.iois-docker0.2.0间接
crates.iois-wsl0.4.0间接
crates.iois_terminal_polyfill1.70.2间接
crates.ioitoa1.0.18间接
crates.iojiff-core0.1.0间接
crates.iojiff-static0.2.35间接
crates.iojni0.22.4间接
crates.iojni-macros0.22.4间接
crates.iojni-sys0.3.1间接
crates.iojni-sys0.4.1间接
crates.iojni-sys-macros0.4.1间接
crates.iojobserver0.1.35间接
crates.iojpeg-decoder0.3.2间接
crates.iojs-sys0.3.103间接
crates.iokhronos-egl6.0.0间接
crates.iokhronos_api3.1.0间接
crates.iokurbo0.11.3间接
crates.iokurbo0.13.1间接
crates.iolazy_static1.5.0间接
crates.iolibc0.2.189间接
crates.iolibloading0.8.9间接
crates.iolibm0.2.16间接
crates.iolibmimalloc-sys0.1.49间接
crates.iolibredox0.1.18间接
crates.iolinebender_resource_handle0.1.1间接
crates.iolinked-hash-map0.5.6间接
crates.iolinux-raw-sys0.12.1间接
crates.iolinux-raw-sys0.4.15间接
crates.iolitemap0.8.2间接
crates.iolitrs1.0.0间接
crates.iolock_api0.4.14间接
crates.iolz4_flex0.13.1间接
crates.iomemchr2.8.3间接
crates.iomemmap20.9.11间接
crates.iomemoffset0.9.1间接
crates.iomimalloc0.1.52间接
crates.iomime0.3.17间接
crates.iominiz_oxide0.8.9间接
crates.iomio1.2.1间接
crates.ionaga30.0.0间接
crates.ionaga-types30.0.0间接
crates.iondk0.9.0间接
crates.iondk-context0.1.1间接
crates.iondk-sys0.6.0+11769913间接
crates.ionum-conv0.2.2间接
crates.ionum-traits0.2.19间接
crates.ionum_enum0.7.6间接
crates.ionum_enum_derive0.7.6间接
crates.ioobjc-sys0.3.5间接
crates.ioobjc20.5.2间接
crates.ioobjc20.6.4间接
crates.ioobjc2-app-kit0.2.2间接
crates.ioobjc2-app-kit0.3.2间接
crates.ioobjc2-cloud-kit0.2.2间接
crates.ioobjc2-contacts0.2.2间接
crates.ioobjc2-core-data0.2.2间接
crates.ioobjc2-core-foundation0.3.2间接
crates.ioobjc2-core-graphics0.3.2间接
crates.ioobjc2-core-image0.2.2间接
crates.ioobjc2-core-location0.2.2间接
crates.ioobjc2-encode4.1.0间接
crates.ioobjc2-foundation0.2.2间接
crates.ioobjc2-foundation0.3.2间接
crates.ioobjc2-io-surface0.3.2间接
crates.ioobjc2-link-presentation0.2.2间接
crates.ioobjc2-metal0.2.2间接
crates.ioobjc2-metal0.3.2间接
crates.ioobjc2-quartz-core0.2.2间接
crates.ioobjc2-quartz-core0.3.2间接
crates.ioobjc2-symbols0.2.2间接
crates.ioobjc2-ui-kit0.2.2间接
crates.ioobjc2-ui-kit0.3.2间接
crates.ioobjc2-uniform-type-identifiers0.2.2间接
crates.ioobjc2-user-notifications0.2.2间接
crates.ioobject0.37.3间接
crates.ioonce_cell1.21.4间接
crates.ioonce_cell_polyfill1.70.2间接
crates.iooorandom11.1.5间接
crates.ioopen5.4.0间接
crates.iooption-ext0.2.0间接
crates.ioorbclient0.3.55间接
crates.ioordered-float5.3.0间接
crates.ioordered-stream0.2.0间接
crates.ioowned_ttf_parser0.25.1间接
crates.iopage_size0.6.0间接
crates.ioparking2.2.1间接
crates.ioparking_lot_core0.9.12间接
crates.iopeniko0.6.1间接
crates.iopercent-encoding2.3.2间接
crates.iophf0.11.3间接
crates.iophf0.13.1间接
crates.iophf_codegen0.11.3间接
crates.iophf_generator0.11.3间接
crates.iophf_generator0.13.1间接
crates.iophf_macros0.11.3间接
crates.iophf_macros0.13.1间接
crates.iophf_shared0.11.3间接
crates.iophf_shared0.13.1间接
crates.iopico-args0.5.0间接
crates.iopin-project1.1.13间接
crates.iopin-project-internal1.1.13间接
crates.iopin-project-lite0.2.17间接
crates.iopiper0.2.5间接
crates.iopkg-config0.3.33间接
crates.ioplain0.2.3间接
crates.ioplist1.10.0间接
crates.iopng0.17.16间接
crates.iopolling3.11.0间接
crates.iopolycool0.4.0间接
crates.ioportable-atomic1.13.1间接
crates.ioportable-atomic-util0.2.7间接
crates.iopotential_utf0.1.5间接
crates.iopowerfmt0.2.0间接
crates.ioppv-lite860.2.21间接
crates.iopresser0.3.1间接
crates.ioproc-macro-crate3.5.0间接
crates.ioproc-macro21.0.107间接
crates.ioprofiling-procmacros1.0.18间接
crates.ioquick-error2.0.1间接
crates.ioquick-xml0.39.4间接
crates.ioquick-xml0.41.0间接
crates.ioquote1.0.47间接
crates.ior-efi5.3.0间接
crates.ior-efi6.0.0间接
crates.iorand0.10.2间接
crates.iorand0.8.6间接
crates.iorand_chacha0.3.1间接
crates.iorand_core0.10.1间接
crates.iorand_core0.6.4间接
crates.iorange-alloc0.1.5间接
crates.ioraw-window-metal1.1.0间接
crates.iorayon-core1.13.0间接
crates.ioread-fonts0.41.0间接
crates.ioredox_syscall0.4.1间接
crates.ioredox_syscall0.5.18间接
crates.ioredox_syscall0.9.0间接
crates.ioredox_users0.5.2间接
crates.ioregex1.12.4间接
crates.ioregex-automata0.4.14间接
crates.ioregex-syntax0.8.11间接
crates.iorenderdoc-sys1.1.0间接
crates.iorfd0.17.2间接
crates.iorgb0.8.53间接
crates.ioring0.17.14间接
crates.iormp0.8.15间接
crates.ioroxmltree0.20.0间接
crates.iorustc-demangle0.1.27间接
crates.iorustc-hash1.1.0间接
crates.iorustc-hash2.1.3间接
crates.iorustc_version0.4.1间接
crates.iorustix0.38.44间接
crates.iorustix1.1.4间接
crates.iorustls0.23.41间接
crates.iorustls-pki-types1.15.0间接
crates.iorustls-webpki0.103.13间接
crates.iorustversion1.0.23间接
crates.iorustybuzz0.20.1间接
crates.iosame-file1.0.6间接
crates.ioscoped-tls1.0.1间接
crates.ioscopeguard1.2.0间接
crates.iosctk-adwaita0.10.1间接
crates.iosemver1.0.28间接
crates.ioserde_core1.0.228间接
crates.ioserde_derive1.0.228间接
crates.ioserde_json1.0.150间接
crates.ioserde_repr0.1.20间接
crates.ioserde_spanned1.1.1间接
crates.ioshlex2.0.1间接
crates.iosignal-hook-registry1.4.8间接
crates.iosimd-adler320.3.10间接
crates.iosimd_cesu81.1.1间接
crates.iosimdutf80.1.5间接
crates.iosimilar3.1.1间接
crates.iosimilar-asserts2.0.0间接
crates.iosimplecss0.2.2间接
crates.iosiphasher1.0.3间接
crates.ioslab0.4.12间接
crates.ioslotmap1.1.1间接
crates.iosmithay-client-toolkit0.19.2间接
crates.iosmithay-clipboard0.7.2间接
crates.iosmol_str0.2.2间接
crates.iosocket20.6.4间接
crates.iospirv0.4.0+sdk-1.4.341.0间接
crates.iostable_deref_trait1.2.1间接
crates.iostrict-num0.1.1间接
crates.iosubtle2.6.1间接
crates.iosvgtypes0.15.3间接
crates.iosyn2.0.119间接
crates.iosynstructure0.13.2间接
crates.iotempfile3.27.0间接
crates.iotermcolor1.4.1间接
crates.iothiserror-impl1.0.69间接
crates.iothiserror-impl2.0.18间接
crates.iotiff0.9.1间接
crates.iotime0.3.53间接
crates.iotime-core0.1.9间接
crates.iotime-macros0.2.31间接
crates.iotiny-skia0.11.4间接
crates.iotiny-skia-path0.11.4间接
crates.iotinystr0.8.3间接
crates.iotinytemplate1.2.1间接
crates.iotinyvec1.12.0间接
crates.iotinyvec_macros0.1.1间接
crates.iotokio1.53.1间接
crates.iotoml_datetime1.1.1+spec-1.1.0间接
crates.iotoml_edit0.25.12+spec-1.1.0间接
crates.iotoml_parser1.1.3+spec-1.1.0间接
crates.iotracing0.1.44间接
crates.iotracing-attributes0.1.31间接
crates.iotracing-core0.1.36间接
crates.iottf-parser0.25.1间接
crates.iotypeid1.0.3间接
crates.iouds_windows1.2.1间接
crates.iounicase2.9.0间接
crates.iounicode-bidi0.3.18间接
crates.iounicode-bidi-mirroring0.4.0间接
crates.iounicode-ccc0.4.0间接
crates.iounicode-ident1.0.24间接
crates.iounicode-properties0.1.4间接
crates.iounicode-script0.5.8间接
crates.iounicode-vo0.1.0间接
crates.iounicode-width0.2.2间接
crates.iounicode_names2_generator3.1.0间接
crates.iountrusted0.9.0间接
crates.ioureq3.3.0间接
crates.ioureq-proto0.6.0间接
crates.iourl2.5.8间接
crates.iousvg0.45.1间接
crates.ioutf8-zero0.8.1间接
crates.ioutf8_iter1.0.4间接
crates.ioutf8parse0.2.2间接
crates.iouuid1.23.4间接
crates.iovello_common0.1.0间接
crates.ioversion_check0.9.5间接
crates.iowalkdir2.5.0间接
crates.iowasi0.11.1+wasi-snapshot-preview1间接
crates.iowasip21.0.4+wasi-0.2.12间接
crates.iowasm-bindgen0.2.126间接
crates.iowasm-bindgen-futures0.4.76间接
crates.iowasm-bindgen-macro0.2.126间接
crates.iowasm-bindgen-macro-support0.2.126间接
crates.iowasm-bindgen-shared0.2.126间接
crates.iowayland-backend0.3.15间接
crates.iowayland-client0.31.14间接
crates.iowayland-csd-frame0.3.0间接
crates.iowayland-cursor0.31.14间接
crates.iowayland-protocols0.32.13间接
crates.iowayland-protocols-plasma0.3.12间接
crates.iowayland-protocols-wlr0.3.12间接
crates.iowayland-scanner0.31.10间接
crates.iowayland-sys0.31.11间接
crates.ioweb-sys0.3.103间接
crates.iowebpki-roots1.0.8间接
crates.ioweezl0.1.12间接
crates.iowgpu-core30.0.0间接
crates.iowgpu-core-deps-apple30.0.0间接
crates.iowgpu-core-deps-emscripten30.0.0间接
crates.iowgpu-core-deps-wasm30.0.0间接
crates.iowgpu-core-deps-windows-linux-android30.0.0间接
crates.iowgpu-hal30.0.0间接
crates.iowgpu-naga-bridge30.0.0间接
crates.iowgpu-types30.0.0间接
crates.iowinapi0.3.9间接
crates.iowinapi-i686-pc-windows-gnu0.4.0间接
crates.iowinapi-util0.1.11间接
crates.iowinapi-x86_64-pc-windows-gnu0.4.0间接
crates.iowindows0.62.2间接
crates.iowindows-collections0.3.2间接
crates.iowindows-core0.62.2间接
crates.iowindows-future0.3.2间接
crates.iowindows-implement0.60.2间接
crates.iowindows-interface0.59.3间接
crates.iowindows-link0.2.1间接
crates.iowindows-numerics0.3.1间接
crates.iowindows-result0.4.1间接
crates.iowindows-strings0.5.1间接
crates.iowindows-sys0.52.0间接
crates.iowindows-sys0.61.2间接
crates.iowindows-targets0.52.6间接
crates.iowindows-threading0.2.1间接
crates.iowindows_aarch64_gnullvm0.52.6间接
crates.iowindows_aarch64_msvc0.52.6间接
crates.iowindows_i686_gnu0.52.6间接
crates.iowindows_i686_gnullvm0.52.6间接
crates.iowindows_i686_msvc0.52.6间接
crates.iowindows_x86_64_gnu0.52.6间接
crates.iowindows_x86_64_gnullvm0.52.6间接
crates.iowindows_x86_64_msvc0.52.6间接
crates.iowinnow1.0.3间接
crates.iowit-bindgen0.57.1间接
crates.iowriteable0.6.3间接
crates.iox11-dl2.21.0间接
crates.iox11rb0.13.2间接
crates.iox11rb-protocol0.13.2间接
crates.ioxcursor0.3.10间接
crates.ioxkbcommon-dl0.4.2间接
crates.ioxkeysym0.2.1间接
crates.ioxml-rs0.8.28间接
crates.ioxmlwriter0.1.0间接
crates.ioyaml-rust0.4.5间接
crates.ioyoke0.8.3间接
crates.ioyoke-derive0.8.2间接
crates.iozbus5.16.0间接
crates.iozbus-lockstep0.5.2间接
crates.iozbus-lockstep-macros0.5.2间接
crates.iozbus_macros5.16.0间接
crates.iozbus_names4.3.2间接
crates.iozbus_xml5.1.1间接
crates.iozerocopy0.8.55间接
crates.iozerocopy-derive0.8.55间接
crates.iozerofrom0.1.8间接
crates.iozerofrom-derive0.1.7间接
crates.iozeroize1.9.0间接
crates.iozerotrie0.2.4间接
crates.iozerovec0.11.6间接
crates.iozerovec-derive0.11.3间接
crates.iozmij1.0.21间接
crates.iozune-core0.4.12间接
crates.iozune-jpeg0.4.21间接
crates.iozvariant5.12.0间接
crates.iozvariant_derive5.12.0间接
crates.iozvariant_utils3.4.0间接
依赖安全公告 6

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 561 个包,其中也包含从不交付的开发与测试版本固定:6 个存在已知公告,0 个为直接依赖。

软件包版本关系严重程度公告数修复版本
quick-xml0.39.4间接20.41.0
bincode1.3.3间接未知1
event-listener5.4.1间接未知15.4.2
rustybuzz0.20.1间接未知1
ttf-parser0.25.1间接未知1
yaml-rust0.4.5间接未知1

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "icon": {
      "bytes": 2932,
      "width": 48,
      "height": 48,
      "rejected": [],
      "collected": true,
      "media_type": "image/vnd.microsoft.icon",
      "source_url": "https://www.egui.rs/favicon.ico",
      "source_type": "homepage",
      "content_hash": "3455a0e46b91b7d6c609be76e89a2e266c83d8f098413a03e69e17779191c279",
      "candidates_considered": 1
    },
    "repo": {
      "topics": [
        "gui",
        "rust",
        "game-development",
        "wasm",
        "imgui",
        "gamedev",
        "egui"
      ],
      "is_fork": false,
      "size_kb": 93349,
      "has_wiki": true,
      "homepage": "https://www.egui.rs/",
      "languages": {
        "GLSL": 2873,
        "HTML": 12697,
        "Rust": 4100431,
        "WGSL": 8039,
        "Shell": 13629,
        "Python": 17100
      },
      "pushed_at": "2026-08-05T10:57:09Z",
      "created_at": "2019-01-13T15:39:15Z",
      "owner_type": "User",
      "updated_at": "2026-08-06T05:04:25Z",
      "description": "egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Rust",
      "significant_languages": [
        "Rust"
      ]
    },
    "owner": {
      "blog": "http://www.ilikebigbits.com/",
      "name": "Emil Ernerfeldt",
      "type": "User",
      "login": "emilk",
      "company": "Rerun.io, egui",
      "location": "Stockholm, Sweden",
      "followers": 7863,
      "avatar_url": "https://avatars.githubusercontent.com/u/1148717?v=4",
      "created_at": "2011-10-24T16:40:17Z",
      "is_verified": null,
      "public_repos": 84,
      "account_age_days": 5399
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "0.36.0",
          "kind": "minor",
          "published_at": "2026-08-05T11:13:50Z"
        },
        {
          "tag": "0.35.0",
          "kind": "minor",
          "published_at": "2026-06-25T18:44:37Z"
        },
        {
          "tag": "0.34.3",
          "kind": "patch",
          "published_at": "2026-05-27T08:22:06Z"
        },
        {
          "tag": "0.34.2",
          "kind": "patch",
          "published_at": "2026-05-04T14:46:54Z"
        },
        {
          "tag": "0.34.1",
          "kind": "patch",
          "published_at": "2026-03-27T10:29:32Z"
        },
        {
          "tag": "0.34.0",
          "kind": "minor",
          "published_at": "2026-03-26T11:18:20Z"
        },
        {
          "tag": "0.33.3",
          "kind": "patch",
          "published_at": "2025-12-11T14:42:00Z"
        },
        {
          "tag": "0.33.2",
          "kind": "patch",
          "published_at": "2025-11-13T14:34:02Z"
        },
        {
          "tag": "0.33.0",
          "kind": "minor",
          "published_at": "2025-10-09T17:15:50Z"
        },
        {
          "tag": "0.32.3",
          "kind": "patch",
          "published_at": "2025-09-12T06:27:29Z"
        },
        {
          "tag": "0.32.2",
          "kind": "patch",
          "published_at": "2025-09-04T13:22:53Z"
        },
        {
          "tag": "0.32.1",
          "kind": "patch",
          "published_at": "2025-08-15T11:45:10Z"
        },
        {
          "tag": "0.32.0",
          "kind": "minor",
          "published_at": "2025-07-10T15:04:05Z"
        },
        {
          "tag": "0.31.1",
          "kind": "patch",
          "published_at": "2025-03-05T07:46:16Z"
        },
        {
          "tag": "0.31.0",
          "kind": "minor",
          "published_at": "2025-02-04T16:01:58Z"
        },
        {
          "tag": "0.30.0",
          "kind": "minor",
          "published_at": "2024-12-16T17:11:55Z"
        },
        {
          "tag": "0.29.1",
          "kind": "patch",
          "published_at": "2024-10-01T08:12:03Z"
        },
        {
          "tag": "0.29.0",
          "kind": "minor",
          "published_at": "2024-09-26T13:35:19Z"
        },
        {
          "tag": "0.28.1",
          "kind": "patch",
          "published_at": "2024-07-05T10:13:44Z"
        },
        {
          "tag": "0.28.0",
          "kind": "minor",
          "published_at": "2024-07-03T13:02:35Z"
        },
        {
          "tag": "0.27.2",
          "kind": "patch",
          "published_at": "2024-04-02T16:17:44Z"
        },
        {
          "tag": "0.27.1",
          "kind": "patch",
          "published_at": "2024-03-29T11:57:49Z"
        },
        {
          "tag": "0.27.0",
          "kind": "minor",
          "published_at": "2024-03-26T16:21:33Z"
        },
        {
          "tag": "0.26.2",
          "kind": "patch",
          "published_at": "2024-02-14T09:51:02Z"
        },
        {
          "tag": "0.26.1",
          "kind": "patch",
          "published_at": "2024-02-11T08:05:30Z"
        },
        {
          "tag": "0.26.0",
          "kind": "minor",
          "published_at": "2024-02-05T16:43:35Z"
        },
        {
          "tag": "0.26.0-alpha.1",
          "kind": "prerelease",
          "published_at": "2024-02-01T19:31:59Z"
        },
        {
          "tag": "0.25.0",
          "kind": "minor",
          "published_at": "2024-01-08T11:36:42Z"
        },
        {
          "tag": "0.24.1",
          "kind": "patch",
          "published_at": "2023-11-30T16:54:11Z"
        },
        {
          "tag": "0.24.0",
          "kind": "minor",
          "published_at": "2023-11-23T15:28:08Z"
        },
        {
          "tag": "0.23.0",
          "kind": "minor",
          "published_at": "2023-09-28T06:47:40Z"
        },
        {
          "tag": "0.22.0",
          "kind": "minor",
          "published_at": "2023-05-23T18:07:21Z"
        },
        {
          "tag": "0.21.0",
          "kind": "minor",
          "published_at": "2023-02-08T19:39:51Z"
        },
        {
          "tag": "0.20.1",
          "kind": "patch",
          "published_at": "2022-12-11T16:21:46Z"
        },
        {
          "tag": "0.20.0",
          "kind": "minor",
          "published_at": "2022-12-08T14:27:37Z"
        },
        {
          "tag": "0.19.0",
          "kind": "minor",
          "published_at": "2022-08-20T15:05:47Z"
        },
        {
          "tag": "0.18.0",
          "kind": "minor",
          "published_at": "2022-04-30T18:35:47Z"
        },
        {
          "tag": "0.17.0",
          "kind": "minor",
          "published_at": "2022-02-22T18:47:52Z"
        },
        {
          "tag": "0.16.0",
          "kind": "minor",
          "published_at": "2021-12-29T11:26:11Z"
        },
        {
          "tag": "0.15.0",
          "kind": "minor",
          "published_at": "2021-10-24T14:30:21Z"
        },
        {
          "tag": "0.14.1",
          "kind": "patch",
          "published_at": "2021-08-28T09:15:46Z"
        },
        {
          "tag": "0.14.0",
          "kind": "minor",
          "published_at": "2021-08-27T17:16:10Z"
        },
        {
          "tag": "0.1.0",
          "kind": "minor",
          "published_at": "2020-05-30T16:26:30Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "2397194d5e494b55322d0153a312d1e79936c92e",
          "body": null,
          "is_bot": false,
          "headline": "Release 0.36.0 - Improved mobile keyboard support (#8390)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-08-05T10:55:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e37d44ad8a61ace5c8462e20e826bf254f42fc3e",
          "body": "* Closes <https://github.com/emilk/egui/issues/8266>\n* Alternative to #8385\n\nNot the most simple or beautiful code, but it works, and makes sense.\n\nWhat makes it complex: `app.logic` should still see some input (e.g.\nwhat viewports are visible) and emit some output (e.g. \"open this link\",\nor \"focus \n[…]\nan tell that it is\nhidden. The ui input (events, time, …) is not interpreted, and is\ninstead given to the next real pass.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Never run an egui pass when nothing will be shown (#8387)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-05T07:14:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "90e03028f7c298ff854a34c7e8c0c8c022bdeacf",
          "body": null,
          "is_bot": false,
          "headline": "Fix a few nightly clippy lints (#8388)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-04T19:40:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5347b0a4ac89c1ff8d59019f40e83652867d7392",
          "body": "…386)\n\n## Related\n\n* Fixes a regression from #8152\n* Part of #2921\n\nReported symptom: you can widen the Widget Gallery window, but it won't\nshrink again.\n\nI'm not sure this fix is the best one, but it does work.\n\n# Claude says\n## Cause\n\nA `Grid` gives its **last** column all the available width, so \n[…]\ntemplate\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>\nCo-authored-by: Lucas Meurer <hi@lucasmerlin.me>",
          "is_bot": false,
          "headline": "Fix window with a `Grid` being widenable but not shrinkable again (#8…",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-04T14:54:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "622bbbeccc0b8c72fe796b23b6efea757354a8d4",
          "body": "A fully collapsed `show_collapsible` panel now leaves a thin grab handle\nat its fixed edge, invisible until hovered. Dragging it out past\n`min_size` (or double-clicking it) reopens the panel. Opt out with\n`panel.drag_to_open(false)`.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add drag-to-open for collapsible panels (#8363)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-04T09:20:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "98eab505778e1d474ec5d8a727f16a2ee9e6cfb9",
          "body": "A widget that senses both clicks and drags postpones the\nclick-versus-drag decision until the pointer moves past `max_click_dist`\nor is held for `max_click_duration`. But a click has to be released *on*\nthe widget — so once the pointer leaves, the gesture can only be a drag,\nand there is nothing lef\n[…]\nrneath, while\n`dragged()` was not true yet. So a handle highlighting on `hovered() ||\ndragged()` blinked out mid-gesture.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Treat a press that leaves a widget as a drag (#8365)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-04T09:09:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "78c0e39d1d7ced1a0d91671a51e398b5338f63a7",
          "body": "…separately in the missing place (#8275)\n\nFix ScrollArea failure by handling horizontal and vertical scrolling\nseparately in the missing place\n\nEverywhere in `ScrollArea`, horizontal and vertical scrolling are\nhandled separately.\nHowever, because there is a single place where they are not handled\nse\n[…]\ns to scroll.\n\nThis Pull Request ensures that horizontal and vertical scrolling are\nhandled separately in this area, just like in the rest of the codebase.\n\n* Closes #5289\n* Closes #5307\n* Closes #8274",
          "is_bot": false,
          "headline": "Fix ScrollArea failure by handling horizontal and vertical scrolling …",
          "author_name": "rustbasic",
          "author_login": "rustbasic",
          "committed_at": "2026-08-04T08:10:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c0b690dab5023139957c144fe282db4c6e9713e",
          "body": "…t lines (#8040)\n\nAdd `extra_text_line_spacing` to control vertical spacing between text\nlines\n\n**Description**\nThis PR adds a new `Spacing::extra_text_line_spacing` field to control\nadditional vertical spacing between lines of text.\n\nThe spacing is applied to text layout by adjusting\n`TextFormat::l\n[…]\nng.\n\nThis improves text readability and allows consistent line spacing\ncustomization for widgets such as `TextEdit` and `Label`.\n\n---------\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Add `extra_text_line_spacing` to control vertical spacing between tex…",
          "author_name": "rustbasic",
          "author_login": "rustbasic",
          "committed_at": "2026-08-04T08:06:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dae9adf307b36d97f3254e43c356818280d32ed0",
          "body": "It was confusing that both tolerances had \"threshold\" in the name\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": " Rename `failed_pixel_count_threshold` to `max_failed_pixels` (#8383)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-03T16:02:41Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "49d4befe6b6198f5adcb7e2e6b413fa1f8de288c",
          "body": "* Closes #4654\n* Related #4667\n* [x] I have followed the instructions in the PR template\n\nThis PR avoids materializing the contents of a file that was dragged\ninto an egui application on the web. It does so by storing the\n`web_sys::File` handle directly on WASM.\n\nThis breaks the existing API of `Dro\n[…]\nynchronously form a `DroppedFile`\nanymore, forcing handling call sites to become asynchronous.\n\nThe native API remains the same.\n\n---------\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Store `web_sys::File` inside of `DroppedFile` (#8354)",
          "author_name": "Jochen Görtler",
          "author_login": "grtlr",
          "committed_at": "2026-08-03T15:07:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e7a92bc3750bf6d9a1d455ea565b2c97259950e",
          "body": "Change the feature name from syntax_highlighting to syntect.\n\n<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog\n[…]\nresolved.\n\nPlease be patient! I will review your PR, but my time is limited!\n-->\n\n* [x] I have followed the instructions in the PR template\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Fix incorrect feature name in the code editor demo (#8330)",
          "author_name": "limo520",
          "author_login": "limo520",
          "committed_at": "2026-08-03T12:51:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ef846f53e67398e86374234872b9ccecd5879080",
          "body": "Hi, I may or may not have used your crate but I'd like to say a quick\nthank you for it anyway!\nI'm going down the list of reverse dependencies on `memoffset`.\n\nThis PR aims to remove the `memoffset` crate from your dependencies.\n\n[`core::mem::offset_of`](https://doc.rust-lang.org/core/mem/macro.offs\n[…]\nchase it down because I'm firing off a whole bunch of these PRs to\nvarious repositories, sorry.)\n\n`cargo clippy` gives 1 unrelated warning.\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Remove dependency on `memoffset` (#8304)",
          "author_name": "Sybrand Aarnoutse",
          "author_login": "syberant",
          "committed_at": "2026-08-03T12:37:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5f75aa29d3a1f7ab0e18380851591dc307b8442b",
          "body": "Replaces `home::home_dir` with `std::env::home_dir` as these functions\ndo the exact same thing\n\n<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR titl\n[…]\n 1.87 this has been fixed and now these two functions do exactly\nthe same thing.\n\n* [X] I have followed the instructions in the PR template\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Remove dependency `home` (#8307)",
          "author_name": "Calbabreaker",
          "author_login": "Calbabreaker",
          "committed_at": "2026-08-03T12:29:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa608a1b40ec9a0683fd9c272828bc10105e164e",
          "body": "* [X] I have followed the instructions in the PR template\n\n\nAdd a way to set the frame for the content and for the title of the\nwindow\n- `self.frame` will be used for the margins of the body\n- `self.title_frame` will be used for the margins of the header (title)",
          "is_bot": false,
          "headline": "Add `egui::Window::title_frame` (#8353)",
          "author_name": "n4n5",
          "author_login": "Its-Just-Nans",
          "committed_at": "2026-08-03T12:15:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eba2780dbafd2d0a422f93d54c4a3589817f23c3",
          "body": "Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix `egui_kittest` failing to compile without the `wgpu` feature (#8381)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-03T11:58:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3d70aa1123e395046fc468f45e097bdac017ebb4",
          "body": null,
          "is_bot": false,
          "headline": "Make wgpu Instance public (#8321)",
          "author_name": "oleflb",
          "author_login": "oleflb",
          "committed_at": "2026-08-03T11:53:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddec5f3e4ce2142dfbc95f3216d9851605682963",
          "body": "…ves (#8382)\n\nTwo fixes to the separator line of `Panel` (`resolve_frame` was added in\n#8367):\n\n* **Reserve room only when the line is always drawn.** Before,\n`show_separator_line || resizable` reserved the line's thickness, so a\nresizable panel that opted out still got a permanently visible gap alo\n[…]\n* [x] I have followed the instructions in the PR template\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix where `Panel` puts its separator line, and how much room it reser…",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-03T10:32:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "dcd0c72d53695068e9ba2627c726aaa9b6c3ae2c",
          "body": "…(#8332)\n\n## Summary\n\n- Closes #8309\n- [x] I have followed the instructions in the PR template\n\n`TextEdit` hint text was always aligned to `Align2::LEFT_TOP`, ignoring\nthe alignment set via `TextEdit::horizontal_align` / `vertical_align`.\nThis caused the hint text, the cursor, and the typed text to \n[…]\np egui_kittest --lib`\n(pre-existing `unnecessary_wraps` now silenced)\n- [x] `cargo clippy -p egui -- -D warnings`\n- [x] `cargo fmt --check`\n\n---------\n\nCo-authored-by: Lucas Meurer <hi@lucasmerlin.me>",
          "is_bot": false,
          "headline": "Fix TextEdit hint text not following horizontal_align/vertical_align …",
          "author_name": "Davy",
          "author_login": "thedavidweng",
          "committed_at": "2026-08-03T08:55:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c676d939ca61668358cd7bd41c33c79c193595a2",
          "body": "When an image snapshot fails, you get the number of pixels differing by\nmore than the `threshold` you happened to configure — which doesn't tell\nyou what threshold *would* have passed. So picking\n`SnapshotOptions::threshold` / `failed_pixel_count_threshold` is trial\nand error, one CI round-trip per \n[…]\nd`\nfield.\n\n* [x] I have followed the instructions in the PR template\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Report failing pixels by threshold when a kittest snapshot fails (#8360)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-03T08:08:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "967aa1137a95b59fd0341f773fa38b24c34d86fc",
          "body": "Follow-up to #8366, which removed `Visuals::clip_rect_margin` outright\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Re-add `Visuals::clip_rect_margin` as a deprecated no-op (#8380)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-03T07:57:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "998b413739b352220c5ee4f44fd102af39e36a6d",
          "body": "Adds a new option to sync the window theme with the egui theme, enabled\nby default. Works across viewports.\n\n \n\n\nhttps://github.com/user-attachments/assets/513c2318-cd6e-4e2b-805d-04002c375a10\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Sync window theme with egui theme (#8299)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-08-03T07:40:29Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a80ed6bab7ac4a70342d9330e39b68199ae7caaa",
          "body": "<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog, so make it descriptive!\n* If applicable, add a screenshot or\n[…]\nfollowed the instructions in the PR template\n\nAdds a `link` feature to eframe to allow disabling links on egui-winit.\nThe feature is enabled by default so nothing changes for existing users\nof eframe.",
          "is_bot": false,
          "headline": "Eframe: make webbrowser dependency optional (#8372)",
          "author_name": "Calin P",
          "author_login": "wyvernbw",
          "committed_at": "2026-08-03T07:00:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "65109a0da04c3f136f1b501c2ea6b4111595cc15",
          "body": "Routine dependency update.\n\nUpdated: `font-types` 0.12, `harfrust` 0.12, `jiff` 0.2.35, `open` 5.4,\n`pollster` 1.0, `rand` 0.10.2, `self_cell` 1.3, `skrifa` 0.44, `tokio`\n1.53, `toml` 1.1, `vello_cpu` 0.1.",
          "is_bot": false,
          "headline": "Update crates (#8379)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-03T06:38:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb2b306f1157aebb7dc47a5809f58318aeaa0e59",
          "body": "## Summary\n\n- Add `LayoutJob::clear` to reuse layout settings while rebuilding text.\n- Cover preservation of every layout setting.\n\n## Test\n\n- `cargo clippy -p epaint --all-features --all-targets`\n- `cargo test -p epaint --all-features`\n\n* [x] I have followed the instructions in the PR template",
          "is_bot": false,
          "headline": "Add `LayoutJob::clear` (#8376)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-02T19:26:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f30623cff45d91f4fd025aa25bd472442e49e71",
          "body": "## Summary\n\n- Add `WidgetText::size` for sizing plain, rich, and layout-job text\nuniformly.\n- Preserve already-laid-out galleys.\n\n## Test\n\n- `cargo clippy -p egui --all-features --all-targets`\n- `cargo test -p egui --all-features`\n\n* [x] I have followed the instructions in the PR template",
          "is_bot": false,
          "headline": "Add `WidgetText::size` (#8377)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-02T19:25:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7fd54ef741d55232f7ab107eec293b3bc894a278",
          "body": "## Summary\n\n- Add `BoxedWidget` and `Widget::boxed` for heterogeneous widget\ncollections.",
          "is_bot": false,
          "headline": "Add `BoxedWidget`: dynamically dispatched widgets (#8378)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-02T19:22:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4471969a16a130bc07f65eb747d5e2c3bfcf1d88",
          "body": "This fixes a small styling bug: the width of the panel's\nresize-handle-line was not included in the outer width of the panel. Now\nit is.",
          "is_bot": false,
          "headline": "Panels: Take separator line width into account (#8367)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-08-01T10:13:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b06f5fea09a472e4b676721406d43d7b0059a1c9",
          "body": "* Closes https://github.com/emilk/egui/issues/5605\n \nIt has been zero by default for a few months now, and I do not wish to\nsupport it. It was always an ugly hack, and it is no longer needed.",
          "is_bot": false,
          "headline": "Remove `clip_rect_margin` (#8366)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-07-31T21:21:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36341c21fe7422f742f860949f68e2b6e381934c",
          "body": "Fixes two bugs around tooltips:\n- During sizing pass tooltips would render at a different size, at which\npoint they might overlap the interacted widget causing the hover state\nto change and the tooltip to never be shown\n- Fix: During sizing pass make the area `interactable: false` so events\npass thr\n[…]\nill pass through the area background _and_\nit's containing widgets. It worked this way initially but got changed in\n#4026\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Make non-interactive tooltips not interactable (#8362)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-07-31T12:30:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c69834e65a0681d4fa40c30545b006ce39527034",
          "body": "<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog, so make it descriptive!\n* If applicable, add a screenshot or\n[…]\neference, [the reverted\nimplementation](https://github.com/emilk/egui/pull/8045/commits/8a4f70859c8ba1e00186db1431e8f6906d2d1426)\nworks fine on Android (Gboard), but not on iOS (iPadOS 17 + SwiftKey).",
          "is_bot": false,
          "headline": "Improve robustness of text input handling for `eframe/web` (#8045)",
          "author_name": "Umaĵo",
          "author_login": "umajho",
          "committed_at": "2026-07-29T16:55:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6268c84d8a46092adea32826aa22089f55ae4986",
          "body": "We had a ton of issues around `TexturesDelta` that weren't properly\napplied because we early-out of some function:\n* https://github.com/emilk/egui/pull/8313\n* https://github.com/emilk/egui/pull/8250\n* https://github.com/emilk/egui/pull/8279\n\nThis PR changes texture updates, so that we always store t\n[…]\na debug assert that any `TexturesDelta` is empty when\ndropped, as an additional safeguard in case the bug sneaks back in.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Prevent accidentally dropping `TexturesDelta` (#8356)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-07-29T16:16:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d99b665ec0bf090e8f6fa431a7c90d4c0f2c60e9",
          "body": "* Follow-up to #8296, part of\n<https://github.com/emilk/egui/issues/8295>\n* [x] I have followed the instructions in the PR template\n\nStacked on #8296 (base branch), kept as a separate PR so it can be\nreverted independently.\n\nThe hidden text-agent `<input>` is now inserted as a *sibling of the\ncanvas\n[…]\n-p eframe --target wasm32-unknown-unknown\n--all-features` and `cargo fmt --all`.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Web: anchor the text agent to the canvas (#8297)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-07-28T14:24:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "701de698d484f9d4dc7c66e3caf5ddeb9baf872d",
          "body": "…d tab (#8313)\n\nThe `textures_delta` in `AppRunner::logic()` comes from\n`TextureManager::take_delta()` via `end_pass()`. Previously, if\n`is_visible` was `false`, these deltas would have been dropped and never\napplied, so the `TextureManager` state gets out of sync with the\n`Renderer`.\n\nThat causes h\n[…]\nilk/egui/issues/8228> and its duplicate\nhttps://github.com/emilk/egui/issues/8278\n* [x] I have followed the instructions in the PR template\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "web: Avoid panic from lost texture updates when loaded on a backgroun…",
          "author_name": "Kevin Mehall",
          "author_login": "kevinmehall",
          "committed_at": "2026-07-28T11:33:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "76442c870e2f8cf3b6f88a5b530f6254de5336e0",
          "body": "…e (#8337)\n\nAfter upgrading to wgpu v30, it requires to drop the `BufferView` return\nby `get_mapped_range` before unmap the buffer. Fix it in this pr, making\nscreenshot event crash no more",
          "is_bot": false,
          "headline": "fix: ensure mapped range is dropped before unmapping buffer in captur…",
          "author_name": "Magic Crazy Man",
          "author_login": "MagicCrazyMan",
          "committed_at": "2026-07-28T09:46:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c1711ff9f889f07c1ca2a165e8174f3dcd69244",
          "body": "Too many false positives (spurious red rectangles)",
          "is_bot": false,
          "headline": "Disable `warn_if_rect_changes_id`, even in debug builds (#8349)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-07-28T09:27:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d06f5b5dfcd714811ea0ae590cb410771d0706c1",
          "body": "Useful to support resizing headless apps via `egui_inspection`",
          "is_bot": false,
          "headline": "Handle `ViewportCommand::InnerSize` in `egui_kittest` (#8350)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-07-28T08:54:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ca01cdbaf555a53a06fdc7428f3c03fcde675c3",
          "body": "* realized pressing just modifiers cause no key events on eframe web\nwhen testing https://github.com/emilk/egui/pull/8336\n* closes https://github.com/emilk/egui/issues/8308\n* part of #3653",
          "is_bot": false,
          "headline": "Fix missing modifier events on eframe web, handle physical keys (#8345)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-07-28T08:52:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b730815797ad719238c7d7cb9370a606b89a6870",
          "body": "No particular reason\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update MSRV from 1.92 to 1.95 (#8348)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-07-28T08:37:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8fc323fbcf06558dcbbbc02c54b29c1c38d2660f",
          "body": "This allows inspection clients to know if the app is in a settled state\nand/or run the app until it settles (similar to egui_kittests\n`run`/`run_ok`).",
          "is_bot": false,
          "headline": "Add `egui_inspection::Request::Settle` (#8344)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-07-28T07:47:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cb071f7f6d71e0f888ba31bec9b3eb5ed5428fe",
          "body": "- needs #8335 \n\nPreviously it was impossible to correctly set modifiers via egui\ninspection, since that only passes egui::Event and egui::Event had no\nway to generally express modifiers.\nNow modifiers are passed to egui as a Event and not as a field of\n`RawInput`.\n\n---------\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Remove `Modifiers` from `RawInput` and make it a `egui::Event` (#8336)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-07-27T14:17:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6eb00a31c7089d4458c55fcbe5f1253311a7176",
          "body": "## Summary\n\n- [x] I have followed the instructions in the PR template\n\nFixes comment-style violations of the `CONTRIBUTING.md` code style rule:\n\n> `// Comment like this.` and not `//like this`\n\n### Files changed\n\n- `crates/epaint/src/shapes/bezier_shape.rs`: `//temporary solution` →\n`// temporary so\n[…]\nchanges — only adding the missing space after `//` in\ninline and standalone comments.\n\n## Test plan\n\n- [x] `cargo fmt --check`\n- [x] `cargo clippy -p epaint -p egui`\n- [x] `cargo test -p epaint --lib`",
          "is_bot": false,
          "headline": "Fix comment style: add space after // (#8333)",
          "author_name": "Davy",
          "author_login": "thedavidweng",
          "committed_at": "2026-07-24T08:24:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b98f4b40344e2a815db32388510d2c0ad792d109",
          "body": "## Summary\n\n- [x] I have followed the instructions in the PR template\n\nFixes the 12 failing `cargo-deny` CI checks on `main` (introduced by\n#8289).\n\n### Root cause\n\n`rustybuzz` was flagged as unmaintained by\n[RUSTSEC-2026-0206](https://rustsec.org/advisories/RUSTSEC-2026-0206),\nreported on 2026-07-1\n[…]\neck advisories` — passes (`advisories ok`)\n- [x] `cargo deny check` — all sections pass (`advisories ok, bans ok,\nlicenses ok, sources ok`)\n\n---------\n\nCo-authored-by: Lucas Meurer <hi@lucasmerlin.me>",
          "is_bot": false,
          "headline": "Ignore RUSTSEC-2026-0206 (rustybuzz unmaintained) in cargo-deny (#8334)",
          "author_name": "Davy",
          "author_login": "thedavidweng",
          "committed_at": "2026-07-24T08:23:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d28929ec7225205100590fce2836f885bc9ba688",
          "body": "* Closes <https://github.com/emilk/egui/issues/8115>\n* [x] I have followed the instructions in the PR template\n\n## Summary\n\n- Recalculate a menu popup's cached `Area` size when it reopens.\n- Preserve cached sizing for continuously open menus and leave tooltips\nand general popups unchanged.\n- Add a h\n[…]\n\nalignment, screen-constraining, and continuously open menu behavior\nremain unchanged.\n\n## Validation\n\n- `cargo test -p egui_kittest --test menu`\n- `cargo check -p egui`\n- `cargo fmt --all -- --check`",
          "is_bot": false,
          "headline": "Rerun `sizing_pass` when reopening popup (#8315)",
          "author_name": "Vitaly Kravchenko",
          "author_login": "yay",
          "committed_at": "2026-07-23T14:58:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3fcadda5ba186c9a0f8c1546e2a3fefae6b1e863",
          "body": null,
          "is_bot": false,
          "headline": "Upgrade wgpu to v30 (#8289)",
          "author_name": "Aarni Koskela",
          "author_login": "akx",
          "committed_at": "2026-07-20T09:07:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b865da1942ee2b2b4ebed9bdcadb67a1fbb5da1d",
          "body": "…296)\n\n* Closes <https://github.com/emilk/egui/issues/8295>\n* [x] I have followed the instructions in the PR template\n\nWhen an eframe app is embedded in a scrollable host page, the host page\njumped to the top whenever the app booted or grabbed keyboard focus.\nCause: the hidden text-agent `<input>` s\n[…]\n the top of the host page. (`move_to` keeps\nrepositioning it for IME as before.)\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Web: don't scroll host page when text agent or canvas grabs focus (#8…",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-07-08T14:30:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d3850a9ca7c9b989d1ea3900d43305e7032a4e3b",
          "body": "Semver-compatible dependency updates (~200 transitive crates in\n`Cargo.lock`), plus housekeeping of the version pins in `Cargo.toml`.\n\n## Changes\n* Normalize version strings in `[workspace.dependencies]`\n(`similar-asserts = \"2.0\"`, `unicode_names2 = \"3.1\"`)\n* `cargo update`: bump all semver-compatib\n[…]\nen on all targets, `cargo clippy\n--all-features --all-targets` clean.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update crates (#8301)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-07-07T17:34:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "765d5ea8a8d3c747da74e3dab499c744145ea174",
          "body": "Updates crossbeam and ignores the others as there are no possible yet",
          "is_bot": false,
          "headline": "Fix cargo deny (#8300)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-07-07T08:59:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f005960bdc3cd6af768347990322771c5b57af0d",
          "body": "When using the cranelift backend we would get stack traces that would\ncontain a lot of egui callstacks. This should solve it.",
          "is_bot": false,
          "headline": "Improve backtrace trimming for cranelift (#8294)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-07-06T18:34:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68b74530b7848cef6bff4efc5fc9906bfbd1e8ca",
          "body": null,
          "is_bot": false,
          "headline": "Release 0.35.0 - Inspection, egui_mcp, classes and improved IME (#8268)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-25T18:48:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a08630c99649e52ae570acdb48c287bddefacbfe",
          "body": "* [x] I have followed the instructions in the PR template\n\nJust a small docs change, since I saw this trip someone up. The ones on\n`Response` may be redundant.",
          "is_bot": false,
          "headline": "Improve docs on some methods to clarify what counts as a \"click\" (#8251)",
          "author_name": "Andrew Farkas",
          "author_login": "HactarCE",
          "committed_at": "2026-06-25T17:01:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5bf62ca4b336df9bf327adec2cfa52a471dba3f8",
          "body": "<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog, so make it descriptive!\n* If applicable, add a screenshot or\n[…]\nentical to `macOS builtin`. (ignoring the fact\nthat the composition breaks when typing the second Hangul. (This bug\npredates this PR.)) |——|\n\n---------\n\nCo-authored-by: lucasmerlin <hi@lucasmerlin.me>",
          "is_bot": false,
          "headline": "Implement proper visuals for IME composition (#8083)",
          "author_name": "Umaĵo",
          "author_login": "umajho",
          "committed_at": "2026-06-25T16:21:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a8d09eb60d37381a902b61160d9bc589508442e5",
          "body": "## Summary\n\nThis fixes macOS live-resize behavior for the `eframe`/`egui-wgpu` path\nwhen using the low-latency wgpu surface configuration.\n\nThe problem I was seeing is that native window resize can look visibly\nbelow the baseline expected from a desktop GUI: stale or stretched\nframes (manifesting as\n[…]\ny\n\nNo visible wobble/jitter and no severe live-resize lag.\n\n\nhttps://github.com/user-attachments/assets/59e46e9f-7906-4b5c-a6c7-1d09eae644cd\n\n---------\n\nCo-authored-by: lucasmerlin <hi@lucasmerlin.me>",
          "is_bot": false,
          "headline": "Fix macOS wgpu live resize with low-latency surfaces (#8229)",
          "author_name": "Vitaly Kravchenko",
          "author_login": "yay",
          "committed_at": "2026-06-25T13:55:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e26b70ae95883c93961d8eeb077559f896e8932",
          "body": "* Closes https://github.com/emilk/egui/issues/5112\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Call `logic` even while browser tab is in background (#8257)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-25T12:59:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "26ead4af210c167819d6569f99c9f56c899bd01d",
          "body": "<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog, so make it descriptive!\n* If applicable, add a screenshot or\n[…]\nimited!\n-->\n\n* [X] I have followed the instructions in the PR template\n\nThis PR adds a `remove_string()` API to the Storage trait and also\nimplements it in the `FileStorage` and `LocalStorage` stucts.",
          "is_bot": false,
          "headline": "feat: add `remove_string()` to storage trait (#8264)",
          "author_name": "mike",
          "author_login": "mikesk8r",
          "committed_at": "2026-06-25T10:34:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3fdcef15ab3cf4138ac665dc0ca72ab147ba6bb3",
          "body": "A get atoms trait for Button, checkbox etc. I made it because I had time\nto kill after I tried sorting buttons in a Vec by the image in their\natoms, but couldn't get to it because it was private.\n\n---------\n\nCo-authored-by: Lucas Meurer <hi@lucasmerlin.me>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add `atoms()` helpers to get `Atoms` from widgets (#8128)",
          "author_name": "Nashvill375",
          "author_login": "Nashvill375",
          "committed_at": "2026-06-25T10:16:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ffbd7dc6416cd4b14140b2063f8fab8275842f97",
          "body": "This is a bit like my previous pr\n(<https://github.com/emilk/egui/pull/8037>), but addresses the final bit\nof 64 bit atomic dependent code, the svg loader in the `egui_extras`\ncrate.\n\nAs with the previous pr, this improves egui's compatibility on platforms\nwithout 64 bit atomics.\n\n* Closes <https://github.com/emilk/egui/issues/7692>\n\n* [x] I have followed the instructions in the PR template",
          "is_bot": false,
          "headline": "Remove 64 bit atomics in egui_extras (#8263)",
          "author_name": "kay-lambdadelta",
          "author_login": "kay-lambdadelta",
          "committed_at": "2026-06-25T09:56:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e19bd14046aafc763a75013f4648b41b2cf3b5c",
          "body": "Fixes #8079, where font hinting only sharpens the vertical axis\n(vertical stems stay blurry), and none of the skrifa knobs were\nreachable — only switching to `Target::Mono` helped, but that wasn't\nexposed.\n\nThis makes the hinting target configurable instead of hardcoding\n`Target::Smooth { symmetric_\n[…]\n.\nWhether to flip the *default* is left as a follow-up.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Make font hinting target configurable via `FontTweak` (#8262)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-25T01:18:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e8d96525f4530c5426c8d2088ff99a18460e88b7",
          "body": "That makes it more ergonomic in some cases, e.g. allows you to use\n`Rangef`",
          "is_bot": false,
          "headline": "Make `Slider::new` take `impl Into<RangeInclusive` (#8260)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-24T19:03:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c600b3c762208b5ed6e75feecd5943a07855ed3",
          "body": "The `FontTweak` settings UI previously let you edit variable-font\nvariation coordinates only via free-form tag + value entry — you had to\n*know* that e.g. `wght` exists and what range is valid.\n\nThis PR queries the font's actual variation axes and pre-populates the\nUI.\n\n### Changes\n- **`epaint`**: n\n[…]\n\" alt=\"Screenshot 2026-06-24 at 11 51 33\"\nsrc=\"https://github.com/user-attachments/assets/f898289a-e329-453a-ba86-c60858901466\"\n/>\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Pre-populate font variation axes in the `FontTweak` UI (#8258)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-24T18:55:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "600286d05606cfaecd577f74eb2cb7edeac234bd",
          "body": "Makes it possible to use egui_mcp to drive apps headlessly via kittest",
          "is_bot": false,
          "headline": "Handle `ViewportCommand::Screenshot` in kittest (#8256)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-24T17:58:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a49d895bf4ba603436b7bbc1a1488b82fd14a33",
          "body": "A `Button` used as a toggle (via `Button::selected(true)`,\n`Button::selectable(...)`, or `Ui::selectable_label`) now announces its\npressed / not-pressed state to screen readers. Plain buttons that never\ncall `.selected(...)` stay un-toggled, so their announcement doesn't\nchange. `Checkbox` and the p\n[…]\nferent policies regarding AI generated code. Do let me know if\nthis is not acceptable here. Also happy to take any other feedback.\n\nCo-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Announce pressed state of selectable buttons to screen readers (#8130)",
          "author_name": "Antoine Cellerier",
          "author_login": "antoinecellerier",
          "committed_at": "2026-06-24T11:58:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "080ce81c8b6078d9215959c64409c5bd307a4135",
          "body": "* To be merged after #8219 \n\nAdds support for vertical atom layout. Together with #8219 this\nbasically creates a minimal flex layout engine",
          "is_bot": false,
          "headline": "Add `AtomLayout::direction` (#8221)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-24T11:56:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c11c7b1b18f7801c60aad647a530df78057747a",
          "body": "Removed wrong `cfg` attribute that broke inspection with the glow\nbackend.",
          "is_bot": false,
          "headline": "Fix eframe inspection for glow (#8254)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-23T15:17:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de04af8fb71b6978a452b7c34b8ec3b19b6719cc",
          "body": "## Symptom\n\nFix this long-standing, occasional bug, that can cause text to look\ncompressed and \"drunk\":\n\n<img width=\"552\" height=\"226\" alt=\"Screenshot 2026-06-22 at 13 12 56\"\nsrc=\"https://github.com/user-attachments/assets/9b1abad4-5ef6-4771-8168-f201afc341ab\"\n/>\n\n\n## Root cause\n\n`epaint::TextureAtl\n[…]\n's not included. The fixes rest on the reasoning above.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix \"drunk text\" bug (#8250)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-23T15:14:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5ca09dc0b5201576237254994a1c16f36d448d87",
          "body": "When an agent screenshots the app using the mcp and then interacts with\nthe app by clicking at coords, they see the coords in the native image\ncoords. Since the mcp does everything else in logical coordinates, it\nhelps if the image they see is also in logical resoltution, so we always\ndownscale it t\n[…]\n other transport channel (makes the implementation for reruns mcp\nnicer).\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nCo-authored-by: Lucas Meurer <lucas@rerun.io>",
          "is_bot": false,
          "headline": "Allow downscaling image in `GetScreenshot` inspection request (#8248)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-23T08:51:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7be2e9a2ae578ced23ff947e260ef2db3c0c8b44",
          "body": "The font-shaping and SVG crate families can't be bumped right now\nwithout splitting a transitive crate into two versions in `Cargo.lock`.\nEvery blocker is an upstream crate that hasn't caught up, so this PR\njust records the reasons inline in `Cargo.toml` instead of forcing\nduplicates.\n\n## Blockers\n\n\n[…]\no` (for the font stack) and `sctk-adwaita` (for\ntiny-skia) update.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Document why the font and SVG crates can't be updated yet (#8253)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-23T03:42:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b409bf3f728f64cc82c8aa21940b647f7aea61f5",
          "body": "Closes https://github.com/emilk/egui/issues/8239",
          "is_bot": false,
          "headline": "Respect `image`'s orientation (#8240)",
          "author_name": "Matt Fellenz",
          "author_login": "mattfbacon",
          "committed_at": "2026-06-23T03:28:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0fce065f8542892a1a4a8607d8049bcccff253e3",
          "body": "Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Update a lot of dependencies (#8252)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-23T03:20:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f209b9aea05a63d21697b19df35d51d224ad8f86",
          "body": "This allows you to put an `AtomLayout` inside another `AtomLayout`.\nRight now this has limited use, but once we add wrapping, vertical\n`AtomLayout` and `AtomUi`, this will be a really powerful new layouting\nprimitive for egui.\n\nAdded a test for this in https://github.com/emilk/egui/pull/8221",
          "is_bot": false,
          "headline": "Add `AtomKind::Layout`, for nesting `AtomLayout` (#8219)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-22T17:09:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "428e027ec7b32d0d87f9f18c39e5ec0cdda6fa8b",
          "body": null,
          "is_bot": false,
          "headline": "Export ByteRange and CharRange (#8247)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-22T03:45:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "467c5b84f056025973f1df86365d38b99bfa4f11",
          "body": "Hey,\nthis is my fist PR to fix the bug I just published #8225 \nI hope it helps. \nI tested the fix with wgpu but not glow.\nI must say that I am not very happy to have very similar function\nis_viewport_or_descendant_visible in both case.\nLet me know if you would prefer that I try to factorize it.\n\n* Closes <https://github.com/emilk/egui/issues/8225>\n* [X] I have followed the instructions in the PR template\n\n---------\n\nCo-authored-by: Matthieu Casanova <public@kpouer.com>",
          "is_bot": false,
          "headline": "Fix crash when parent viewport is hidden (#8226)",
          "author_name": "Matthieu Casanova",
          "author_login": "kpouer",
          "committed_at": "2026-06-22T01:39:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c8c27c5dff554dda1dfd3a7c5d88529588c19b1",
          "body": "Label text selection before the fix in a deferred viewport:\n\n<img width=\"484\" height=\"172\" alt=\"before_the_fix\"\nsrc=\"https://github.com/user-attachments/assets/2214a7d9-9585-497d-9920-dd336a7df7ea\"\n/>\n\nAfter the fix:\n\n<img width=\"484\" height=\"172\" alt=\"after_the_fix\"\nsrc=\"https://github.com/user-att\n[…]\nwport then fails to encounter the\nselected widgets and clears the\nselection.\n\nThis restores the behavior of #4760 within the current plugin\narchitecture. Applications do not\nneed any special handling.",
          "is_bot": false,
          "headline": "Fix label selection in deferred viewports (#8242)",
          "author_name": "Vitaly Kravchenko",
          "author_login": "yay",
          "committed_at": "2026-06-22T01:37:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "13d6b5afcf39d0ebca8190ca0c35f2a93cdc2af9",
          "body": "Less risk of confusing the two.\n\nFound and fix a couple real bugs in the process!\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Use strongly typed `CharIndex` and `ByteIndex` + bug fixes (#8245)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-21T00:24:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "eac51da9cad0ed95b652c6a03debf28c19537199",
          "body": "This PR adds two small additions to `LayoutJob`:\n\n- `LayoutJob::format_at_byte` to query the `TextFormat` of the section\ncovering a given byte index.\n- An optimization to `LayoutJob::append` that merges newly appended text\ninto the previous section when the format matches and there is no\nleading spa\n[…]\nplit at `append` boundaries.\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add `LayoutJob::format_at_byte` (#8244)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-20T20:07:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "86fcffb2292845dc71116e6c070ab32e5c6e862a",
          "body": "Introduces live inspection for running egui apps over a small TCP\nrequest/response protocol, plus the `egui::Plugin` that serves it.\n\nThis is the minimal surface to get the egui mcp in, we may want to\nextend this in the future to add support for the inspection gui.\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add `egui_inspection` protocol and plugin (#8234)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-06-18T09:26:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "172fb54f7fb29887da74d42860d2030433833fe4",
          "body": "* Closes https://github.com/emilk/egui/issues/8217\n* [x] I have followed the instructions in the PR template\n\n## What\n\n`AllocatedAtomLayout::paint` painted text via\n`ui.painter().galley(...)`, so text in atom-based widgets could never be\nselected. As discussed in #8217, routing it through\n`LabelSele\n[…]\npening as a draft.\n- This only adds the opt-in API; no existing widget is made selectable.\nHappy to wire it up on a specific widget and/or add an `egui_demo_lib`\ndemo if you'd like — just let me know.",
          "is_bot": false,
          "headline": "Add `AtomLayout::selectable` for opt-in text selection (#8224)",
          "author_name": "冷凍アカギ",
          "author_login": "akagifreeez",
          "committed_at": "2026-06-13T18:25:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "27a61934b1d90043e4e1601bf45e4ff30c8f05e8",
          "body": "Summary:\n- add docs/accessibility.md with labels, custom widgets, and testing\nguidance\n- link the guide from the README accessibility FAQ\n\nCloses #4396\n\nChecks:\n- cargo fmt --all -- --check\n- git diff --check",
          "is_bot": false,
          "headline": "docs: add AccessKit accessibility guide (#8233)",
          "author_name": "Alexander Kireyev",
          "author_login": "chatman-media",
          "committed_at": "2026-06-13T18:23:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f624e3078637e1698b1885d197b72bea25623ed5",
          "body": "…(WASM)** (#7888)\n\n**fix(web): prevent entire page from scrolling out of view in Chrome\n(WASM)**\n\n* Closes #7887\n\n**Problem**\nWhen using `egui` on the web, the browser (especially Chrome)\noccasionally triggers an unwanted page-level scroll. This happens\nbecause the hidden input element (text agent) \n[…]\nrowser from incorrectly scrolling the entire page when the text agent\nmoves.\n\n- **Specific change:** Applied `clamp(0.0, canvas_height)` to the\n`clamped_y` value before setting the CSS `top` property.",
          "is_bot": false,
          "headline": "**fix(web): prevent entire page from scrolling out of view in Chrome …",
          "author_name": "rustbasic",
          "author_login": "rustbasic",
          "committed_at": "2026-06-11T09:53:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b46b9e225fe23717412f58b56802b8dd0817316d",
          "body": "* I accidentally merged https://github.com/emilk/egui/pull/8127 without\nall of its checks having been run.\n\nI've now marked a few CI items as required",
          "is_bot": false,
          "headline": "Formatting fixes: fix red main (#8232)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-10T19:45:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e392fbadd407637eae011a2c4dfbd650d3d6a771",
          "body": null,
          "is_bot": false,
          "headline": "Refactor: break up `input.rs` into many files (#8230)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-10T08:12:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "333442008cf1a4ee90e683f81a530e7904d4a664",
          "body": "…reases (#8048)\n\n### Problem\n`Column::remainder().clip(true)` grows correctly when the panel is made\nwider, but does not shrink when the panel is made narrower.\n\n### Root cause\nThere are two places in `table.rs` where the `max_used_widths` floor is\napplied to column widths. One correctly checks `col\n[…]\nsets/2b586588-9f72-4a15-80f4-afddadb69441\n\n\n**With the fix:** the column shrinks correctly and no scrollbar appears\n✓\n\n\n\nhttps://github.com/user-attachments/assets/f1655641-e135-489c-9f59-2af3faa887ab",
          "is_bot": false,
          "headline": "`Column::remainder().clip(true)` now shrinks when available width dec…",
          "author_name": "Germán Navarro",
          "author_login": "germ4n",
          "committed_at": "2026-06-10T08:01:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b3e4cde85a930ce1439f1ad232b249bbaabde1a5",
          "body": "…8210)\n\n### Problem\n`Response::lost_focus()` could silently fail to fire when keyboard focus\nmoved from one widget to another *within the same frame* — for example,\nclicking a `TextEdit` that was added to the UI *after* the\ncurrently-focused one.\n\n### Fix\nThis widens the detection window by one extr\n[…]\ne current master branch, too.\n\n* This PR replaces https://github.com/emilk/egui/pull/3247\n* Closes <https://github.com/emilk/egui/issues/2142>\n* [x] I have followed the instructions in the PR template",
          "is_bot": false,
          "headline": "Fix #2142 - lost_focus not firing after a mid-frame focus transfer (#…",
          "author_name": "Francesco Cinà",
          "author_login": "ufoscout",
          "committed_at": "2026-06-10T08:00:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "704d86e4aaba8d96405c26e6559976f1a82b3367",
          "body": "## Summary\n\nAdds `Context::interactive_rects_last_pass() -> Vec<Rect>`, an\nintegration-facing helper that returns the same widget interaction\nrectangles egui uses for hit-testing in the last completed pass.\n\nThe method filters out disabled widgets, non-interactive widgets, and\nlayers that currently \n[…]\nstic output.\n- Non-positive or non-finite rectangles are skipped.\n\n## Verification\n\n- `cargo check -p egui`\n- `cargo test -p egui --lib`\n\nCo-authored-by: psyche314 <psyche314@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Expose interactive rects from the last pass (#8211)",
          "author_name": "psyche314",
          "author_login": "psyche314",
          "committed_at": "2026-06-10T08:00:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "923ddcf30d48673cffdd5a04df793c3f6396a1ff",
          "body": "* [x] I have followed the instructions in the PR template\n\nRelated to https://github.com/emilk/egui/discussions/4263",
          "is_bot": false,
          "headline": "Enhance documentation for Ui::disabled method (#8209)",
          "author_name": "n4n5",
          "author_login": "Its-Just-Nans",
          "committed_at": "2026-06-10T07:58:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5012603e03f380defac510df970d6b2cc635131a",
          "body": "Fix: ScrollArea layout jitter with floating bars and zoom levels\n\n* Closes #7937 \n* Closes #7942 \n\nThis PR improves the stability of `ScrollArea` by addressing two layout\nissues:\n\n1. **Discrete Layout for Floating Bars:** Fixed content \"shaking\" in\n`floating` mode when a non-zero `allocated_width` i\n[…]\nll epsilon (0.1) when\nchecking if content exceeds the viewport. This prevents scrollbars from\nflickering on and off due to floating-point rounding errors at specific\nzoom factors (e.g., 1.01 or 0.95).",
          "is_bot": false,
          "headline": "Fix: ScrollArea layout jitter with floating bars and zoom levels (#7944)",
          "author_name": "rustbasic",
          "author_login": "rustbasic",
          "committed_at": "2026-06-10T07:57:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0b920aae423fb8822a88fe4290177a01a76a634e",
          "body": "## Problem\n\nwinit has always delivered distinct physical variants for every keyboard\nkey — \\`KeyCode::ShiftLeft\\` vs \\`KeyCode::ShiftRight\\`,\n\\`KeyCode::ControlLeft\\`/\\`ControlRight\\`, \\`AltLeft\\`/\\`AltRight\\`,\n\\`SuperLeft\\`/\\`SuperRight\\`, plus the ISO 102nd key\n\\`KeyCode::IntlBackslash\\` (the one \n[…]\norward what\nwinit already gives us for the event path.\n\nCloses no issue directly but addresses the underlying gap noted in the\nthread of #2977 (scancode forwarding) for the modifier / Intl-key\nsubset.",
          "is_bot": false,
          "headline": "Add modifier keys to `egui::Key` (#8127)",
          "author_name": "Sylvain",
          "author_login": "Le-Syl21",
          "committed_at": "2026-06-10T07:53:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "858c8fd99f0335999340f3bcb4252a9595fa2d45",
          "body": "The Debug-formatting of `Id` in debug-builds now contain the full\nlineage:\n\n```rs\n#[test]\nfn with_chain() {\n    let id = Id::new(\"a\").with(\"b\").with(\"c\").with(7_i32);\n    assert_eq!(\n        format!(\"{id:?}\"),\n        r#\"Id::new(\"a\").with(\"b\").with(\"c\").with(7)\"#\n    );\n}\n```\n\n\n## Related\n* https://github.com/emilk/egui/pull/5851\n* https://github.com/emilk/egui/pull/7988",
          "is_bot": false,
          "headline": "Improve `Debug`-formatting of `Id` in debug-builds (#8190)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-06-10T07:39:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71c4ff3c337a08bee934f249463d6701bf76b420",
          "body": "<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog, so make it descriptive!\n* If applicable, add a screenshot or\n[…]\n colors internally.\n\nBefore:\n\n\nhttps://github.com/user-attachments/assets/4617a355-daa9-4911-86e6-518ac6867014\n\nAfter:\n\n\nhttps://github.com/user-attachments/assets/d9681b01-50d8-418e-b5a5-79b4bd1bbddf",
          "is_bot": false,
          "headline": "Fixes color picker hue drift at low alpha values (#8208)",
          "author_name": "Gábor Gyebnár",
          "author_login": "aedm",
          "committed_at": "2026-06-05T13:58:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "db7559368dc38704194d48f13400a98c2cf09584",
          "body": "Reserve the scroll area before painting fades and update the fade\npainting logic.\n\n* Closes #8213",
          "is_bot": false,
          "headline": "Refactor scroll area fade painting logic (#8214)",
          "author_name": "rustbasic",
          "author_login": "rustbasic",
          "committed_at": "2026-06-02T14:32:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "654a2a974d1991fe1fcea81a4aaa17c770adee0d",
          "body": null,
          "is_bot": false,
          "headline": "Bump version to 0.34.3 and update changelogs (#8207)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-05-27T09:27:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99a8d7b3ffad1a4ba3e41215d13004b47023203b",
          "body": "…#8140)\n\n## Summary\n\nAdds two paired API entry-points that let an integration target a\nspecific monitor at viewport creation time, or move an existing viewport\nto a different monitor at runtime, in a way that works portably on\nWayland.\n\n```rust\n// At creation\nViewportBuilder::default()\n    .with_inn\n[…]\ntlBackslash` physical key variants\n- **This PR** — `with_monitor` / `SetMonitor`\n\nEach is independently useful. None depend on the others.\n\n🤖 Drafted with [Claude Code](https://claude.com/claude-code)",
          "is_bot": false,
          "headline": "Add `ViewportBuilder::with_monitor` + `ViewportCommand::SetMonitor` (…",
          "author_name": "Sylvain",
          "author_login": "Le-Syl21",
          "committed_at": "2026-05-26T19:45:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c57e3c4b0c766eceb2d025cf9acc060b3f19a8cc",
          "body": "<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog, so make it descriptive!\n* If applicable, add a screenshot or\n[…]\nu have addressed a PR comment, mark it as resolved.\n\nPlease be patient! I will review your PR, but my time is limited!\n-->\n\nFixes a small typo\n* [x] I have followed the instructions in the PR template",
          "is_bot": false,
          "headline": "Fix typo in interaction_snapshot documentation (#8158)",
          "author_name": "Onè",
          "author_login": "c-git",
          "committed_at": "2026-05-26T14:40:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a66f0dbd4f49a96fdba3f0ad23252a312ede9580",
          "body": "…(#8033)\n\n<!--\nPlease read the \"Making a PR\" section of\n[`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/main/CONTRIBUTING.md)\nbefore opening a Pull Request!\n\n* Keep your PR:s small and focused.\n* The PR title is what ends up in the changelog, so make it descriptive!\n* If applicable, add a scr\n[…]\n issue to ensure it will be\ncaught on further code changes.\n\nThe code snippets form the original issue can be used for testing here\nas well\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Fix `ScrollArea::scroll_to_*` calls when `stick_to_bottom` is Active …",
          "author_name": "Ammar Abou Zor",
          "author_login": "AmmarAbouZor",
          "committed_at": "2026-05-26T14:01:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "37a7ee448a4b3474a990f4b4cb1fa189a814482a",
          "body": "Previously, the doc for `Ui::scope_builder` read\n\n> Create a child, add content to it, and then allocate only what was\nused in the parent `Ui`.\n\nwhich I understood as meaning that \"only what was used in the parent\n`UI`\" would be allocated (in the child or parent), which makes no sense\n(in either case).\n\nI rewrote it and some related docs.\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Improve `UiBuilder` docs (#8132)",
          "author_name": "Josie Elliston",
          "author_login": "JosieElliston",
          "committed_at": "2026-05-26T13:53:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d5a7b4557e4f1163a17debf940fc87b4f45c044",
          "body": "* initially done in https://github.com/emilk/egui/pull/8103, reverted in\n#8167 due to resize hangs\n* Related: https://github.com/emilk/egui/issues/8043 (maybe closes??)\n\nTurns out the resize hangs were caused by the present_with_transaction\ncall. Disabling that when `desired_maximum_frame_latency ==\n[…]\ne smoothly.\n\nThanks @krisdigital for noticing that connection:\nhttps://github.com/emilk/egui/issues/8043#issuecomment-4154440382\n\n---------\n\nCo-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
          "is_bot": false,
          "headline": "Configure wgpu to be low-latency by default (#8203)",
          "author_name": "Lucas Meurer",
          "author_login": "lucasmerlin",
          "committed_at": "2026-05-26T13:49:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fd57895559374d12235ea2cb4bd7e58e23aa291e",
          "body": "* Related: https://github.com/emilk/egui/issues/7798",
          "is_bot": false,
          "headline": "Add winit window access to `eframe::Frame` and `CreationContext` (#8205)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-05-26T13:46:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f370ca7a23d4d0a86af947f4b946b6f777bdb28",
          "body": "* Closes <https://github.com/emilk/egui/issues/4491>\n* [x] I have followed the instructions in the PR template\n\nLets you create an `EhttpLoader` with arbitrary headers like so:\n\n```rust\ncc.egui_ctx.add_bytes_loader(std::sync::Arc::new(\n    egui_extras::loaders::http_loader::EhttpLoader::default().wi\n[…]\nder` (in addition to the one installed by default when using\n`egui_extras::install_image_loaders(&cc.egui_ctx)`. But I wasn't\nsure how else to pass in configuration options to\n`install_image_loaders`.",
          "is_bot": false,
          "headline": "Add arbitrary request headers to `EhttpLoader` (#8121)",
          "author_name": "Francis Tseng",
          "author_login": "frnsys",
          "committed_at": "2026-05-26T11:18:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a41bba33a07d8a68290566bce8841ee53dc872e4",
          "body": "* Follows https://github.com/emilk/egui/pull/8199\n\nThis makes the animation of the collapsing panel a bit smoother, by\ntaking into account the spacing between the header and the body.",
          "is_bot": false,
          "headline": "Smoother collapsed-panel animation (#8202)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-05-26T08:59:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ce2b3699ba6a12f15266d827c5a21b7d45b16cf",
          "body": "* Closes https://github.com/emilk/egui/issues/8055\n* Closes https://github.com/emilk/egui/pull/8056\n\nThis changes the behavior of `Panel` to NEVER overflow\n`Panel::max_size`, nor the available space in the parent UI.\n\nIf you do overflow it, the content will be silently clipped.",
          "is_bot": false,
          "headline": "`Panel`: never overflow available width, nor `max_width` (#8198)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-05-26T08:54:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc1b2a99fd77f6821b5dc0bf8c82a9f0782039b9",
          "body": "`ab_glyph` would output coverage values, but `vello` outputs RGBA. So\nthe old name was a misnomer.\n\nI also suspect our default values are wrong, but I need to investigate\nthat more properly in a separate PR.",
          "is_bot": false,
          "headline": "Rename `AlphaFromCoverage` to `FontColorTransferFunction` (#8201)",
          "author_name": "Emil Ernerfeldt",
          "author_login": "emilk",
          "committed_at": "2026-05-26T08:51:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 43,
      "commits_last_year": 471,
      "latest_release_at": "2026-08-05T11:13:50Z",
      "latest_release_tag": "0.36.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 47,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 36.4
    },
    "artifacts": {
      "collected": true,
      "structure": [
        "tree.cargo_lib",
        "tree.cargo_main"
      ],
      "declarations": [
        {
          "name": null,
          "path": "Cargo.toml",
          "tokens": [
            "cargo.workspace"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "ecolor",
          "path": "crates/ecolor/Cargo.toml",
          "tokens": [
            "cargo.category:mathematics",
            "cargo.category:encoding"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "eframe",
          "path": "crates/eframe/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:game-development"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui-wgpu",
          "path": "crates/egui-wgpu/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:game-development"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui-winit",
          "path": "crates/egui-winit/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:game-development"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui",
          "path": "crates/egui/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:game-development"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui_demo_app",
          "path": "crates/egui_demo_app/Cargo.toml",
          "tokens": [
            "cargo.lib",
            "cargo.cdylib",
            "cargo.publish_false"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui_demo_lib",
          "path": "crates/egui_demo_lib/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:graphics"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui_extras",
          "path": "crates/egui_extras/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:game-development"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui_glow",
          "path": "crates/egui_glow/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:game-development"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui_inspection",
          "path": "crates/egui_inspection/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:development-tools::testing",
            "cargo.category:accessibility"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "egui_kittest",
          "path": "crates/egui_kittest/Cargo.toml",
          "tokens": [
            "cargo.category:gui",
            "cargo.category:development-tools::testing",
            "cargo.category:accessibility"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "emath",
          "path": "crates/emath/Cargo.toml",
          "tokens": [
            "cargo.category:mathematics",
            "cargo.category:gui"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "epaint",
          "path": "crates/epaint/Cargo.toml",
          "tokens": [
            "cargo.category:graphics",
            "cargo.category:gui"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "epaint_default_fonts",
          "path": "crates/epaint_default_fonts/Cargo.toml",
          "tokens": [
            "cargo.category:graphics",
            "cargo.category:gui"
          ],
          "ecosystem": "crates"
        },
        {
          "name": "xtask",
          "path": "xtask/Cargo.toml",
          "tokens": [
            "cargo.publish_false"
          ],
          "ecosystem": "crates"
        }
      ]
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "readme_badges": {
        "hosts": [
          "github.com",
          "shields.io"
        ],
        "total": 7,
        "header": 7,
        "collected": true,
        "has_inspect_badge": false
      },
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 85,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "xtask",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "automation",
            "codesign",
            "macos",
            "release",
            "xtask",
            "command-line-utilities",
            "development-tools::build-utils"
          ],
          "ecosystem": "crates",
          "categories": [
            "command-line-utilities",
            "development-tools::build-utils"
          ],
          "matches_repo": false,
          "registry_url": "https://crates.io/crates/xtask",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.1.4",
          "repository_url": "https://github.com/arcboxlabs/xtask",
          "versions_count": 5,
          "total_downloads": 649,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 216,
          "first_published_at": "2026-06-24T11:01:25.012607Z",
          "latest_published_at": "2026-06-30T09:55:36.509458Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 36
        },
        {
          "name": "egui",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "gamedev",
            "gui",
            "imgui",
            "immediate",
            "portable",
            "gui",
            "game-development"
          ],
          "ecosystem": "crates",
          "categories": [
            "gui",
            "game-development"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/egui",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui",
          "versions_count": 64,
          "total_downloads": 20963101,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1540775,
          "first_published_at": "2020-05-30T16:23:04.887452Z",
          "latest_published_at": "2026-08-05T10:36:30.315977Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        },
        {
          "name": "emath",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "gui",
            "math",
            "gui",
            "mathematics"
          ],
          "ecosystem": "crates",
          "categories": [
            "gui",
            "mathematics"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/emath",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui/tree/main/crates/emath",
          "versions_count": 47,
          "total_downloads": 21734737,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1610492,
          "first_published_at": "2021-01-17T14:16:12.764431Z",
          "latest_published_at": "2026-08-05T10:35:59.760225Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        },
        {
          "name": "ecolor",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "color",
            "conversion",
            "gamedev",
            "gui",
            "images",
            "encoding",
            "mathematics"
          ],
          "ecosystem": "crates",
          "categories": [
            "encoding",
            "mathematics"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/ecolor",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui",
          "versions_count": 35,
          "total_downloads": 20088971,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1545443,
          "first_published_at": "2022-12-08T14:12:07.294231Z",
          "latest_published_at": "2026-08-05T10:36:04.522475Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        },
        {
          "name": "eframe",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "egui",
            "gamedev",
            "gui",
            "gui",
            "game-development"
          ],
          "ecosystem": "crates",
          "categories": [
            "gui",
            "game-development"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/eframe",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui/tree/main/crates/eframe",
          "versions_count": 53,
          "total_downloads": 16121945,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1264323,
          "first_published_at": "2021-01-04T14:58:51.582823Z",
          "latest_published_at": "2026-08-05T10:37:47.888504Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        },
        {
          "name": "epaint",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "egui",
            "graphics",
            "gui",
            "gui",
            "graphics"
          ],
          "ecosystem": "crates",
          "categories": [
            "gui",
            "graphics"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/epaint",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui/tree/main/crates/epaint",
          "versions_count": 48,
          "total_downloads": 20901387,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1542722,
          "first_published_at": "2021-01-17T14:21:47.756259Z",
          "latest_published_at": "2026-08-05T10:36:21.658095Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        },
        {
          "name": "egui-wgpu",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "egui",
            "gamedev",
            "gui",
            "wgpu",
            "gui",
            "game-development"
          ],
          "ecosystem": "crates",
          "categories": [
            "gui",
            "game-development"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/egui-wgpu",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui/tree/main/crates/egui-wgpu",
          "versions_count": 44,
          "total_downloads": 9846363,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1064217,
          "first_published_at": "2021-04-10T18:32:46.895636Z",
          "latest_published_at": "2026-08-05T10:37:14.795008Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        },
        {
          "name": "egui_glow",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "egui",
            "gamedev",
            "glow",
            "gui",
            "gui",
            "game-development"
          ],
          "ecosystem": "crates",
          "categories": [
            "gui",
            "game-development"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/egui_glow",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui/tree/main/crates/egui_glow",
          "versions_count": 42,
          "total_downloads": 16351852,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1273200,
          "first_published_at": "2021-10-24T14:17:20.611952Z",
          "latest_published_at": "2026-08-05T10:36:57.668982Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        },
        {
          "name": "egui-winit",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [
            "egui",
            "gamedev",
            "gui",
            "winit",
            "gui",
            "game-development"
          ],
          "ecosystem": "crates",
          "categories": [
            "gui",
            "game-development"
          ],
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/egui-winit",
          "declared_type": null,
          "is_deprecated": false,
          "latest_version": "0.36.0",
          "repository_url": "https://github.com/emilk/egui/tree/main/crates/egui-winit",
          "versions_count": 50,
          "total_downloads": 17522320,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1370231,
          "first_published_at": "2021-04-05T12:03:57.046327Z",
          "latest_published_at": "2026-08-05T10:36:49.158516Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 2097,
      "stars": 29979,
      "watchers": 144,
      "fork_history": {
        "days": [
          {
            "date": "2023-11-04",
            "count": 2
          },
          {
            "date": "2023-11-06",
            "count": 1
          },
          {
            "date": "2023-11-07",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 4
          },
          {
            "date": "2023-11-09",
            "count": 1
          },
          {
            "date": "2023-11-10",
            "count": 2
          },
          {
            "date": "2023-11-11",
            "count": 1
          },
          {
            "date": "2023-11-12",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 2
          },
          {
            "date": "2023-11-14",
            "count": 1
          },
          {
            "date": "2023-11-15",
            "count": 1
          },
          {
            "date": "2023-11-16",
            "count": 2
          },
          {
            "date": "2023-11-17",
            "count": 4
          },
          {
            "date": "2023-11-18",
            "count": 1
          },
          {
            "date": "2023-11-20",
            "count": 1
          },
          {
            "date": "2023-11-21",
            "count": 1
          },
          {
            "date": "2023-11-22",
            "count": 1
          },
          {
            "date": "2023-11-23",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 3
          },
          {
            "date": "2023-11-25",
            "count": 4
          },
          {
            "date": "2023-11-26",
            "count": 1
          },
          {
            "date": "2023-11-27",
            "count": 3
          },
          {
            "date": "2023-11-28",
            "count": 2
          },
          {
            "date": "2023-11-29",
            "count": 2
          },
          {
            "date": "2023-11-30",
            "count": 1
          },
          {
            "date": "2023-12-02",
            "count": 1
          },
          {
            "date": "2023-12-03",
            "count": 2
          },
          {
            "date": "2023-12-04",
            "count": 2
          },
          {
            "date": "2023-12-05",
            "count": 2
          },
          {
            "date": "2023-12-07",
            "count": 3
          },
          {
            "date": "2023-12-08",
            "count": 3
          },
          {
            "date": "2023-12-10",
            "count": 1
          },
          {
            "date": "2023-12-11",
            "count": 1
          },
          {
            "date": "2023-12-14",
            "count": 1
          },
          {
            "date": "2023-12-16",
            "count": 2
          },
          {
            "date": "2023-12-17",
            "count": 2
          },
          {
            "date": "2023-12-18",
            "count": 1
          },
          {
            "date": "2023-12-19",
            "count": 1
          },
          {
            "date": "2023-12-25",
            "count": 2
          },
          {
            "date": "2023-12-26",
            "count": 1
          },
          {
            "date": "2023-12-29",
            "count": 1
          },
          {
            "date": "2023-12-31",
            "count": 1
          },
          {
            "date": "2024-01-01",
            "count": 1
          },
          {
            "date": "2024-01-02",
            "count": 1
          },
          {
            "date": "2024-01-03",
            "count": 2
          },
          {
            "date": "2024-01-04",
            "count": 3
          },
          {
            "date": "2024-01-08",
            "count": 3
          },
          {
            "date": "2024-01-09",
            "count": 2
          },
          {
            "date": "2024-01-10",
            "count": 1
          },
          {
            "date": "2024-01-12",
            "count": 1
          },
          {
            "date": "2024-01-13",
            "count": 1
          },
          {
            "date": "2024-01-14",
            "count": 1
          },
          {
            "date": "2024-01-16",
            "count": 1
          },
          {
            "date": "2024-01-17",
            "count": 1
          },
          {
            "date": "2024-01-19",
            "count": 2
          },
          {
            "date": "2024-01-22",
            "count": 2
          },
          {
            "date": "2024-01-23",
            "count": 2
          },
          {
            "date": "2024-01-24",
            "count": 2
          },
          {
            "date": "2024-01-25",
            "count": 1
          },
          {
            "date": "2024-01-26",
            "count": 2
          },
          {
            "date": "2024-01-27",
            "count": 3
          },
          {
            "date": "2024-01-30",
            "count": 1
          },
          {
            "date": "2024-02-01",
            "count": 1
          },
          {
            "date": "2024-02-02",
            "count": 4
          },
          {
            "date": "2024-02-03",
            "count": 2
          },
          {
            "date": "2024-02-04",
            "count": 3
          },
          {
            "date": "2024-02-05",
            "count": 1
          },
          {
            "date": "2024-02-06",
            "count": 1
          },
          {
            "date": "2024-02-07",
            "count": 2
          },
          {
            "date": "2024-02-08",
            "count": 1
          },
          {
            "date": "2024-02-09",
            "count": 3
          },
          {
            "date": "2024-02-14",
            "count": 1
          },
          {
            "date": "2024-02-15",
            "count": 2
          },
          {
            "date": "2024-02-16",
            "count": 1
          },
          {
            "date": "2024-02-17",
            "count": 1
          },
          {
            "date": "2024-02-18",
            "count": 2
          },
          {
            "date": "2024-02-19",
            "count": 1
          },
          {
            "date": "2024-02-21",
            "count": 3
          },
          {
            "date": "2024-02-22",
            "count": 1
          },
          {
            "date": "2024-02-24",
            "count": 2
          },
          {
            "date": "2024-02-25",
            "count": 2
          },
          {
            "date": "2024-02-26",
            "count": 1
          },
          {
            "date": "2024-02-27",
            "count": 3
          },
          {
            "date": "2024-02-28",
            "count": 1
          },
          {
            "date": "2024-02-29",
            "count": 1
          },
          {
            "date": "2024-03-01",
            "count": 1
          },
          {
            "date": "2024-03-02",
            "count": 1
          },
          {
            "date": "2024-03-04",
            "count": 1
          },
          {
            "date": "2024-03-05",
            "count": 2
          },
          {
            "date": "2024-03-07",
            "count": 3
          },
          {
            "date": "2024-03-08",
            "count": 2
          },
          {
            "date": "2024-03-09",
            "count": 3
          },
          {
            "date": "2024-03-10",
            "count": 1
          },
          {
            "date": "2024-03-13",
            "count": 1
          },
          {
            "date": "2024-03-14",
            "count": 3
          },
          {
            "date": "2024-03-15",
            "count": 2
          },
          {
            "date": "2024-03-16",
            "count": 1
          },
          {
            "date": "2024-03-17",
            "count": 2
          },
          {
            "date": "2024-03-18",
            "count": 4
          },
          {
            "date": "2024-03-19",
            "count": 3
          },
          {
            "date": "2024-03-20",
            "count": 1
          },
          {
            "date": "2024-03-23",
            "count": 1
          },
          {
            "date": "2024-03-26",
            "count": 2
          },
          {
            "date": "2024-03-27",
            "count": 3
          },
          {
            "date": "2024-03-28",
            "count": 1
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-03-30",
            "count": 2
          },
          {
            "date": "2024-04-01",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-03",
            "count": 3
          },
          {
            "date": "2024-04-08",
            "count": 1
          },
          {
            "date": "2024-04-09",
            "count": 2
          },
          {
            "date": "2024-04-10",
            "count": 1
          },
          {
            "date": "2024-04-11",
            "count": 1
          },
          {
            "date": "2024-04-12",
            "count": 3
          },
          {
            "date": "2024-04-16",
            "count": 2
          },
          {
            "date": "2024-04-18",
            "count": 2
          },
          {
            "date": "2024-04-19",
            "count": 3
          },
          {
            "date": "2024-04-20",
            "count": 1
          },
          {
            "date": "2024-04-22",
            "count": 1
          },
          {
            "date": "2024-04-23",
            "count": 1
          },
          {
            "date": "2024-04-24",
            "count": 1
          },
          {
            "date": "2024-04-25",
            "count": 1
          },
          {
            "date": "2024-04-26",
            "count": 3
          },
          {
            "date": "2024-04-27",
            "count": 1
          },
          {
            "date": "2024-04-28",
            "count": 3
          },
          {
            "date": "2024-04-29",
            "count": 2
          },
          {
            "date": "2024-04-30",
            "count": 2
          },
          {
            "date": "2024-05-01",
            "count": 2
          },
          {
            "date": "2024-05-02",
            "count": 1
          },
          {
            "date": "2024-05-03",
            "count": 1
          },
          {
            "date": "2024-05-04",
            "count": 2
          },
          {
            "date": "2024-05-05",
            "count": 1
          },
          {
            "date": "2024-05-06",
            "count": 1
          },
          {
            "date": "2024-05-07",
            "count": 1
          },
          {
            "date": "2024-05-10",
            "count": 2
          },
          {
            "date": "2024-05-14",
            "count": 2
          },
          {
            "date": "2024-05-15",
            "count": 1
          },
          {
            "date": "2024-05-17",
            "count": 2
          },
          {
            "date": "2024-05-19",
            "count": 1
          },
          {
            "date": "2024-05-20",
            "count": 2
          },
          {
            "date": "2024-05-22",
            "count": 1
          },
          {
            "date": "2024-05-24",
            "count": 3
          },
          {
            "date": "2024-05-25",
            "count": 1
          },
          {
            "date": "2024-05-27",
            "count": 2
          },
          {
            "date": "2024-05-28",
            "count": 1
          },
          {
            "date": "2024-05-29",
            "count": 1
          },
          {
            "date": "2024-05-30",
            "count": 1
          },
          {
            "date": "2024-05-31",
            "count": 1
          },
          {
            "date": "2024-06-01",
            "count": 1
          },
          {
            "date": "2024-06-02",
            "count": 2
          },
          {
            "date": "2024-06-03",
            "count": 1
          },
          {
            "date": "2024-06-04",
            "count": 1
          },
          {
            "date": "2024-06-06",
            "count": 1
          },
          {
            "date": "2024-06-07",
            "count": 2
          },
          {
            "date": "2024-06-08",
            "count": 1
          },
          {
            "date": "2024-06-09",
            "count": 2
          },
          {
            "date": "2024-06-10",
            "count": 4
          },
          {
            "date": "2024-06-13",
            "count": 2
          },
          {
            "date": "2024-06-14",
            "count": 2
          },
          {
            "date": "2024-06-16",
            "count": 1
          },
          {
            "date": "2024-06-17",
            "count": 3
          },
          {
            "date": "2024-06-18",
            "count": 1
          },
          {
            "date": "2024-06-20",
            "count": 3
          },
          {
            "date": "2024-06-21",
            "count": 2
          },
          {
            "date": "2024-06-23",
            "count": 1
          },
          {
            "date": "2024-06-24",
            "count": 2
          },
          {
            "date": "2024-06-25",
            "count": 1
          },
          {
            "date": "2024-06-28",
            "count": 1
          },
          {
            "date": "2024-06-29",
            "count": 1
          },
          {
            "date": "2024-06-30",
            "count": 1
          },
          {
            "date": "2024-07-01",
            "count": 2
          },
          {
            "date": "2024-07-02",
            "count": 1
          },
          {
            "date": "2024-07-03",
            "count": 2
          },
          {
            "date": "2024-07-04",
            "count": 1
          },
          {
            "date": "2024-07-06",
            "count": 1
          },
          {
            "date": "2024-07-10",
            "count": 2
          },
          {
            "date": "2024-07-11",
            "count": 1
          },
          {
            "date": "2024-07-12",
            "count": 1
          },
          {
            "date": "2024-07-13",
            "count": 1
          },
          {
            "date": "2024-07-14",
            "count": 1
          },
          {
            "date": "2024-07-15",
            "count": 1
          },
          {
            "date": "2024-07-16",
            "count": 2
          },
          {
            "date": "2024-07-17",
            "count": 1
          },
          {
            "date": "2024-07-18",
            "count": 5
          },
          {
            "date": "2024-07-19",
            "count": 1
          },
          {
            "date": "2024-07-20",
            "count": 3
          },
          {
            "date": "2024-07-23",
            "count": 1
          },
          {
            "date": "2024-07-25",
            "count": 1
          },
          {
            "date": "2024-07-26",
            "count": 1
          },
          {
            "date": "2024-07-29",
            "count": 1
          },
          {
            "date": "2024-07-30",
            "count": 1
          },
          {
            "date": "2024-07-31",
            "count": 1
          },
          {
            "date": "2024-08-02",
            "count": 1
          },
          {
            "date": "2024-08-05",
            "count": 1
          },
          {
            "date": "2024-08-07",
            "count": 2
          },
          {
            "date": "2024-08-08",
            "count": 4
          },
          {
            "date": "2024-08-09",
            "count": 1
          },
          {
            "date": "2024-08-10",
            "count": 1
          },
          {
            "date": "2024-08-11",
            "count": 2
          },
          {
            "date": "2024-08-12",
            "count": 2
          },
          {
            "date": "2024-08-14",
            "count": 2
          },
          {
            "date": "2024-08-16",
            "count": 2
          },
          {
            "date": "2024-08-19",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 2
          },
          {
            "date": "2024-08-21",
            "count": 1
          },
          {
            "date": "2024-08-25",
            "count": 1
          },
          {
            "date": "2024-08-26",
            "count": 1
          },
          {
            "date": "2024-08-27",
            "count": 1
          },
          {
            "date": "2024-08-28",
            "count": 1
          },
          {
            "date": "2024-08-29",
            "count": 1
          },
          {
            "date": "2024-08-30",
            "count": 4
          },
          {
            "date": "2024-09-01",
            "count": 2
          },
          {
            "date": "2024-09-04",
            "count": 1
          },
          {
            "date": "2024-09-05",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 1
          },
          {
            "date": "2024-09-07",
            "count": 1
          },
          {
            "date": "2024-09-08",
            "count": 1
          },
          {
            "date": "2024-09-09",
            "count": 1
          },
          {
            "date": "2024-09-10",
            "count": 1
          },
          {
            "date": "2024-09-11",
            "count": 1
          },
          {
            "date": "2024-09-12",
            "count": 1
          },
          {
            "date": "2024-09-13",
            "count": 1
          },
          {
            "date": "2024-09-18",
            "count": 1
          },
          {
            "date": "2024-09-19",
            "count": 1
          },
          {
            "date": "2024-09-21",
            "count": 2
          },
          {
            "date": "2024-09-22",
            "count": 5
          },
          {
            "date": "2024-09-23",
            "count": 3
          },
          {
            "date": "2024-09-24",
            "count": 5
          },
          {
            "date": "2024-09-25",
            "count": 2
          },
          {
            "date": "2024-09-26",
            "count": 2
          },
          {
            "date": "2024-09-27",
            "count": 2
          },
          {
            "date": "2024-10-02",
            "count": 1
          },
          {
            "date": "2024-10-04",
            "count": 1
          },
          {
            "date": "2024-10-05",
            "count": 1
          },
          {
            "date": "2024-10-06",
            "count": 2
          },
          {
            "date": "2024-10-07",
            "count": 2
          },
          {
            "date": "2024-10-08",
            "count": 2
          },
          {
            "date": "2024-10-09",
            "count": 2
          },
          {
            "date": "2024-10-11",
            "count": 1
          },
          {
            "date": "2024-10-15",
            "count": 2
          },
          {
            "date": "2024-10-17",
            "count": 2
          },
          {
            "date": "2024-10-18",
            "count": 1
          },
          {
            "date": "2024-10-20",
            "count": 1
          },
          {
            "date": "2024-10-24",
            "count": 1
          },
          {
            "date": "2024-10-26",
            "count": 1
          },
          {
            "date": "2024-10-27",
            "count": 1
          },
          {
            "date": "2024-10-29",
            "count": 1
          },
          {
            "date": "2024-10-30",
            "count": 1
          },
          {
            "date": "2024-10-31",
            "count": 1
          },
          {
            "date": "2024-11-02",
            "count": 2
          },
          {
            "date": "2024-11-03",
            "count": 1
          },
          {
            "date": "2024-11-04",
            "count": 1
          },
          {
            "date": "2024-11-07",
            "count": 1
          },
          {
            "date": "2024-11-09",
            "count": 1
          },
          {
            "date": "2024-11-12",
            "count": 1
          },
          {
            "date": "2024-11-17",
            "count": 1
          },
          {
            "date": "2024-11-19",
            "count": 1
          },
          {
            "date": "2024-11-21",
            "count": 2
          },
          {
            "date": "2024-11-23",
            "count": 1
          },
          {
            "date": "2024-11-25",
            "count": 3
          },
          {
            "date": "2024-11-26",
            "count": 1
          },
          {
            "date": "2024-11-27",
            "count": 1
          },
          {
            "date": "2024-11-28",
            "count": 1
          },
          {
            "date": "2024-11-29",
            "count": 1
          },
          {
            "date": "2024-12-01",
            "count": 1
          },
          {
            "date": "2024-12-04",
            "count": 2
          },
          {
            "date": "2024-12-05",
            "count": 1
          },
          {
            "date": "2024-12-06",
            "count": 1
          },
          {
            "date": "2024-12-07",
            "count": 1
          },
          {
            "date": "2024-12-08",
            "count": 2
          },
          {
            "date": "2024-12-09",
            "count": 1
          },
          {
            "date": "2024-12-10",
            "count": 2
          },
          {
            "date": "2024-12-12",
            "count": 1
          },
          {
            "date": "2024-12-13",
            "count": 1
          },
          {
            "date": "2024-12-14",
            "count": 1
          },
          {
            "date": "2024-12-16",
            "count": 1
          },
          {
            "date": "2024-12-18",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 3
          },
          {
            "date": "2024-12-29",
            "count": 1
          },
          {
            "date": "2024-12-30",
            "count": 1
          },
          {
            "date": "2024-12-31",
            "count": 4
          },
          {
            "date": "2025-01-01",
            "count": 1
          },
          {
            "date": "2025-01-02",
            "count": 1
          },
          {
            "date": "2025-01-04",
            "count": 4
          },
          {
            "date": "2025-01-07",
            "count": 1
          },
          {
            "date": "2025-01-10",
            "count": 3
          },
          {
            "date": "2025-01-13",
            "count": 2
          },
          {
            "date": "2025-01-16",
            "count": 3
          },
          {
            "date": "2025-01-17",
            "count": 2
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-01-19",
            "count": 1
          },
          {
            "date": "2025-01-20",
            "count": 3
          },
          {
            "date": "2025-01-25",
            "count": 1
          },
          {
            "date": "2025-01-26",
            "count": 3
          },
          {
            "date": "2025-01-31",
            "count": 1
          },
          {
            "date": "2025-02-01",
            "count": 1
          },
          {
            "date": "2025-02-02",
            "count": 2
          },
          {
            "date": "2025-02-03",
            "count": 2
          },
          {
            "date": "2025-02-04",
            "count": 1
          },
          {
            "date": "2025-02-05",
            "count": 2
          },
          {
            "date": "2025-02-07",
            "count": 2
          },
          {
            "date": "2025-02-09",
            "count": 1
          },
          {
            "date": "2025-02-11",
            "count": 1
          },
          {
            "date": "2025-02-14",
            "count": 2
          },
          {
            "date": "2025-02-17",
            "count": 1
          },
          {
            "date": "2025-02-18",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 2
          },
          {
            "date": "2025-02-22",
            "count": 1
          },
          {
            "date": "2025-02-23",
            "count": 2
          },
          {
            "date": "2025-02-25",
            "count": 2
          },
          {
            "date": "2025-02-26",
            "count": 3
          },
          {
            "date": "2025-02-27",
            "count": 1
          },
          {
            "date": "2025-02-28",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 1
          },
          {
            "date": "2025-03-05",
            "count": 1
          },
          {
            "date": "2025-03-06",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 4
          },
          {
            "date": "2025-03-15",
            "count": 1
          },
          {
            "date": "2025-03-19",
            "count": 2
          },
          {
            "date": "2025-03-23",
            "count": 3
          },
          {
            "date": "2025-03-24",
            "count": 3
          },
          {
            "date": "2025-03-25",
            "count": 1
          },
          {
            "date": "2025-03-26",
            "count": 1
          },
          {
            "date": "2025-03-27",
            "count": 1
          },
          {
            "date": "2025-03-28",
            "count": 3
          },
          {
            "date": "2025-03-30",
            "count": 1
          },
          {
            "date": "2025-04-01",
            "count": 2
          },
          {
            "date": "2025-04-04",
            "count": 1
          },
          {
            "date": "2025-04-05",
            "count": 2
          },
          {
            "date": "2025-04-07",
            "count": 1
          },
          {
            "date": "2025-04-08",
            "count": 1
          },
          {
            "date": "2025-04-09",
            "count": 2
          },
          {
            "date": "2025-04-11",
            "count": 2
          },
          {
            "date": "2025-04-13",
            "count": 2
          },
          {
            "date": "2025-04-15",
            "count": 2
          },
          {
            "date": "2025-04-16",
            "count": 1
          },
          {
            "date": "2025-04-17",
            "count": 4
          },
          {
            "date": "2025-04-18",
            "count": 1
          },
          {
            "date": "2025-04-20",
            "count": 1
          },
          {
            "date": "2025-04-21",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 1
          },
          {
            "date": "2025-04-27",
            "count": 1
          },
          {
            "date": "2025-04-28",
            "count": 1
          },
          {
            "date": "2025-05-02",
            "count": 1
          },
          {
            "date": "2025-05-03",
            "count": 1
          },
          {
            "date": "2025-05-05",
            "count": 1
          },
          {
            "date": "2025-05-06",
            "count": 1
          },
          {
            "date": "2025-05-09",
            "count": 2
          },
          {
            "date": "2025-05-11",
            "count": 2
          },
          {
            "date": "2025-05-12",
            "count": 2
          },
          {
            "date": "2025-05-13",
            "count": 2
          },
          {
            "date": "2025-05-14",
            "count": 2
          },
          {
            "date": "2025-05-15",
            "count": 1
          },
          {
            "date": "2025-05-16",
            "count": 1
          },
          {
            "date": "2025-05-21",
            "count": 1
          },
          {
            "date": "2025-05-24",
            "count": 1
          },
          {
            "date": "2025-05-28",
            "count": 1
          },
          {
            "date": "2025-05-29",
            "count": 1
          },
          {
            "date": "2025-05-30",
            "count": 2
          },
          {
            "date": "2025-05-31",
            "count": 2
          },
          {
            "date": "2025-06-03",
            "count": 2
          },
          {
            "date": "2025-06-04",
            "count": 2
          },
          {
            "date": "2025-06-06",
            "count": 2
          },
          {
            "date": "2025-06-08",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 2
          },
          {
            "date": "2025-06-10",
            "count": 2
          },
          {
            "date": "2025-06-14",
            "count": 1
          },
          {
            "date": "2025-06-17",
            "count": 1
          },
          {
            "date": "2025-06-18",
            "count": 1
          },
          {
            "date": "2025-06-19",
            "count": 1
          },
          {
            "date": "2025-06-22",
            "count": 2
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-06-27",
            "count": 2
          },
          {
            "date": "2025-06-29",
            "count": 5
          },
          {
            "date": "2025-06-30",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 1
          },
          {
            "date": "2025-07-02",
            "count": 1
          },
          {
            "date": "2025-07-03",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2025-07-07",
            "count": 2
          },
          {
            "date": "2025-07-09",
            "count": 1
          },
          {
            "date": "2025-07-10",
            "count": 2
          },
          {
            "date": "2025-07-11",
            "count": 3
          },
          {
            "date": "2025-07-12",
            "count": 1
          },
          {
            "date": "2025-07-15",
            "count": 2
          },
          {
            "date": "2025-07-17",
            "count": 1
          },
          {
            "date": "2025-07-18",
            "count": 1
          },
          {
            "date": "2025-07-20",
            "count": 1
          },
          {
            "date": "2025-07-21",
            "count": 2
          },
          {
            "date": "2025-07-24",
            "count": 5
          },
          {
            "date": "2025-07-25",
            "count": 1
          },
          {
            "date": "2025-07-26",
            "count": 1
          },
          {
            "date": "2025-07-27",
            "count": 1
          },
          {
            "date": "2025-07-29",
            "count": 2
          },
          {
            "date": "2025-07-30",
            "count": 3
          },
          {
            "date": "2025-07-31",
            "count": 1
          },
          {
            "date": "2025-08-02",
            "count": 2
          },
          {
            "date": "2025-08-03",
            "count": 3
          },
          {
            "date": "2025-08-05",
            "count": 3
          },
          {
            "date": "2025-08-06",
            "count": 1
          },
          {
            "date": "2025-08-07",
            "count": 2
          },
          {
            "date": "2025-08-08",
            "count": 1
          },
          {
            "date": "2025-08-09",
            "count": 2
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-08-12",
            "count": 2
          },
          {
            "date": "2025-08-14",
            "count": 1
          },
          {
            "date": "2025-08-15",
            "count": 2
          },
          {
            "date": "2025-08-16",
            "count": 2
          },
          {
            "date": "2025-08-17",
            "count": 1
          },
          {
            "date": "2025-08-21",
            "count": 1
          },
          {
            "date": "2025-08-22",
            "count": 3
          },
          {
            "date": "2025-08-24",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 2
          },
          {
            "date": "2025-08-28",
            "count": 2
          },
          {
            "date": "2025-08-29",
            "count": 1
          },
          {
            "date": "2025-08-30",
            "count": 2
          },
          {
            "date": "2025-09-04",
            "count": 1
          },
          {
            "date": "2025-09-05",
            "count": 1
          },
          {
            "date": "2025-09-07",
            "count": 2
          },
          {
            "date": "2025-09-08",
            "count": 1
          },
          {
            "date": "2025-09-10",
            "count": 1
          },
          {
            "date": "2025-09-13",
            "count": 1
          },
          {
            "date": "2025-09-14",
            "count": 1
          },
          {
            "date": "2025-09-16",
            "count": 1
          },
          {
            "date": "2025-09-17",
            "count": 1
          },
          {
            "date": "2025-09-24",
            "count": 2
          },
          {
            "date": "2025-09-27",
            "count": 1
          },
          {
            "date": "2025-09-28",
            "count": 1
          },
          {
            "date": "2025-09-29",
            "count": 1
          },
          {
            "date": "2025-10-01",
            "count": 1
          },
          {
            "date": "2025-10-03",
            "count": 1
          },
          {
            "date": "2025-10-04",
            "count": 2
          },
          {
            "date": "2025-10-06",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 1
          },
          {
            "date": "2025-10-10",
            "count": 3
          },
          {
            "date": "2025-10-11",
            "count": 1
          },
          {
            "date": "2025-10-13",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 1
          },
          {
            "date": "2025-10-15",
            "count": 1
          },
          {
            "date": "2025-10-16",
            "count": 2
          },
          {
            "date": "2025-10-18",
            "count": 1
          },
          {
            "date": "2025-10-21",
            "count": 1
          },
          {
            "date": "2025-10-22",
            "count": 1
          },
          {
            "date": "2025-10-23",
            "count": 1
          },
          {
            "date": "2025-10-24",
            "count": 1
          },
          {
            "date": "2025-10-28",
            "count": 1
          },
          {
            "date": "2025-10-31",
            "count": 1
          },
          {
            "date": "2025-11-02",
            "count": 1
          },
          {
            "date": "2025-11-04",
            "count": 1
          },
          {
            "date": "2025-11-06",
            "count": 1
          },
          {
            "date": "2025-11-07",
            "count": 2
          },
          {
            "date": "2025-11-08",
            "count": 1
          },
          {
            "date": "2025-11-10",
            "count": 1
          },
          {
            "date": "2025-11-11",
            "count": 2
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 2
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-11-15",
            "count": 2
          },
          {
            "date": "2025-11-17",
            "count": 5
          },
          {
            "date": "2025-11-18",
            "count": 1
          },
          {
            "date": "2025-11-19",
            "count": 1
          },
          {
            "date": "2025-11-21",
            "count": 1
          },
          {
            "date": "2025-11-23",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 1
          },
          {
            "date": "2025-11-25",
            "count": 1
          },
          {
            "date": "2025-11-27",
            "count": 2
          },
          {
            "date": "2025-12-01",
            "count": 1
          },
          {
            "date": "2025-12-02",
            "count": 1
          },
          {
            "date": "2025-12-04",
            "count": 1
          },
          {
            "date": "2025-12-06",
            "count": 2
          },
          {
            "date": "2025-12-07",
            "count": 2
          },
          {
            "date": "2025-12-08",
            "count": 2
          },
          {
            "date": "2025-12-09",
            "count": 3
          },
          {
            "date": "2025-12-11",
            "count": 3
          },
          {
            "date": "2025-12-12",
            "count": 1
          },
          {
            "date": "2025-12-14",
            "count": 2
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-18",
            "count": 5
          },
          {
            "date": "2025-12-19",
            "count": 2
          },
          {
            "date": "2025-12-23",
            "count": 1
          },
          {
            "date": "2025-12-24",
            "count": 1
          },
          {
            "date": "2025-12-26",
            "count": 1
          },
          {
            "date": "2025-12-28",
            "count": 1
          },
          {
            "date": "2025-12-30",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 2
          },
          {
            "date": "2026-01-02",
            "count": 1
          },
          {
            "date": "2026-01-03",
            "count": 1
          },
          {
            "date": "2026-01-04",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-11",
            "count": 4
          },
          {
            "date": "2026-01-14",
            "count": 1
          },
          {
            "date": "2026-01-16",
            "count": 2
          },
          {
            "date": "2026-01-17",
            "count": 2
          },
          {
            "date": "2026-01-18",
            "count": 1
          },
          {
            "date": "2026-01-19",
            "count": 4
          },
          {
            "date": "2026-01-22",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 2
          },
          {
            "date": "2026-01-24",
            "count": 2
          },
          {
            "date": "2026-01-25",
            "count": 1
          },
          {
            "date": "2026-01-27",
            "count": 2
          },
          {
            "date": "2026-01-28",
            "count": 1
          },
          {
            "date": "2026-01-29",
            "count": 2
          },
          {
            "date": "2026-01-31",
            "count": 1
          },
          {
            "date": "2026-02-01",
            "count": 4
          },
          {
            "date": "2026-02-02",
            "count": 2
          },
          {
            "date": "2026-02-04",
            "count": 3
          },
          {
            "date": "2026-02-06",
            "count": 2
          },
          {
            "date": "2026-02-10",
            "count": 3
          },
          {
            "date": "2026-02-11",
            "count": 2
          },
          {
            "date": "2026-02-12",
            "count": 2
          },
          {
            "date": "2026-02-14",
            "count": 2
          },
          {
            "date": "2026-02-15",
            "count": 1
          },
          {
            "date": "2026-02-17",
            "count": 2
          },
          {
            "date": "2026-02-19",
            "count": 1
          },
          {
            "date": "2026-02-20",
            "count": 1
          },
          {
            "date": "2026-02-21",
            "count": 1
          },
          {
            "date": "2026-02-25",
            "count": 1
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-02-27",
            "count": 3
          },
          {
            "date": "2026-02-28",
            "count": 2
          },
          {
            "date": "2026-03-01",
            "count": 3
          },
          {
            "date": "2026-03-02",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-03-05",
            "count": 1
          },
          {
            "date": "2026-03-07",
            "count": 1
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-12",
            "count": 2
          },
          {
            "date": "2026-03-13",
            "count": 2
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-15",
            "count": 1
          },
          {
            "date": "2026-03-16",
            "count": 4
          },
          {
            "date": "2026-03-17",
            "count": 2
          },
          {
            "date": "2026-03-18",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          },
          {
            "date": "2026-03-20",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 2
          },
          {
            "date": "2026-03-25",
            "count": 1
          },
          {
            "date": "2026-03-26",
            "count": 2
          },
          {
            "date": "2026-03-27",
            "count": 1
          },
          {
            "date": "2026-03-29",
            "count": 2
          },
          {
            "date": "2026-03-30",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 1
          },
          {
            "date": "2026-04-02",
            "count": 1
          },
          {
            "date": "2026-04-03",
            "count": 2
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-10",
            "count": 3
          },
          {
            "date": "2026-04-11",
            "count": 2
          },
          {
            "date": "2026-04-12",
            "count": 2
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-04-14",
            "count": 1
          },
          {
            "date": "2026-04-15",
            "count": 2
          },
          {
            "date": "2026-04-16",
            "count": 2
          },
          {
            "date": "2026-04-17",
            "count": 2
          },
          {
            "date": "2026-04-18",
            "count": 2
          },
          {
            "date": "2026-04-20",
            "count": 2
          },
          {
            "date": "2026-04-21",
            "count": 4
          },
          {
            "date": "2026-04-23",
            "count": 3
          },
          {
            "date": "2026-04-25",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 2
          },
          {
            "date": "2026-04-28",
            "count": 1
          },
          {
            "date": "2026-04-30",
            "count": 4
          },
          {
            "date": "2026-05-04",
            "count": 2
          },
          {
            "date": "2026-05-05",
            "count": 2
          },
          {
            "date": "2026-05-06",
            "count": 3
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 3
          },
          {
            "date": "2026-05-12",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 3
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 1
          },
          {
            "date": "2026-05-21",
            "count": 1
          },
          {
            "date": "2026-05-22",
            "count": 3
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-05-30",
            "count": 1
          },
          {
            "date": "2026-06-01",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 2
          },
          {
            "date": "2026-06-10",
            "count": 1
          },
          {
            "date": "2026-06-11",
            "count": 1
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-16",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 3
          },
          {
            "date": "2026-06-26",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 2
          },
          {
            "date": "2026-07-01",
            "count": 1
          },
          {
            "date": "2026-07-02",
            "count": 2
          },
          {
            "date": "2026-07-03",
            "count": 2
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-07",
            "count": 3
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 2
          },
          {
            "date": "2026-07-14",
            "count": 2
          },
          {
            "date": "2026-07-15",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 3
          },
          {
            "date": "2026-07-17",
            "count": 1
          },
          {
            "date": "2026-07-18",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 1
          },
          {
            "date": "2026-07-20",
            "count": 2
          },
          {
            "date": "2026-07-21",
            "count": 4
          },
          {
            "date": "2026-07-22",
            "count": 1
          },
          {
            "date": "2026-07-23",
            "count": 1
          },
          {
            "date": "2026-07-24",
            "count": 1
          },
          {
            "date": "2026-07-25",
            "count": 2
          },
          {
            "date": "2026-07-26",
            "count": 2
          },
          {
            "date": "2026-07-28",
            "count": 2
          },
          {
            "date": "2026-07-31",
            "count": 1
          },
          {
            "date": "2026-08-01",
            "count": 4
          },
          {
            "date": "2026-08-02",
            "count": 2
          },
          {
            "date": "2026-08-03",
            "count": 1
          },
          {
            "date": "2026-08-04",
            "count": 2
          },
          {
            "date": "2026-08-05",
            "count": 3
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 2097
      },
      "star_history": null,
      "open_issues_and_prs": 1114
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "demos",
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "Cargo.toml",
        "crates/ecolor/Cargo.toml",
        "crates/eframe/Cargo.toml",
        "crates/egui-wgpu/Cargo.toml",
        "crates/egui-winit/Cargo.toml",
        "crates/egui/Cargo.toml",
        "crates/egui_demo_app/Cargo.toml",
        "crates/egui_demo_lib/Cargo.toml",
        "crates/egui_extras/Cargo.toml",
        "crates/egui_glow/Cargo.toml",
        "crates/egui_inspection/Cargo.toml",
        "crates/egui_kittest/Cargo.toml",
        "crates/emath/Cargo.toml",
        "crates/epaint/Cargo.toml",
        "crates/epaint_default_fonts/Cargo.toml",
        "examples/confirm_exit/Cargo.toml",
        "examples/custom_3d_glow/Cargo.toml",
        "examples/custom_font/Cargo.toml",
        "examples/custom_font_style/Cargo.toml",
        "examples/custom_keypad/Cargo.toml",
        "examples/custom_style/Cargo.toml",
        "examples/custom_window_frame/Cargo.toml",
        "examples/external_eventloop/Cargo.toml",
        "examples/external_eventloop_async/Cargo.toml",
        "examples/file_dialog/Cargo.toml",
        "examples/font_variations/Cargo.toml",
        "examples/hello_android/Cargo.toml",
        "examples/hello_world/Cargo.toml",
        "examples/hello_world_par/Cargo.toml",
        "examples/hello_world_simple/Cargo.toml",
        "examples/images/Cargo.toml",
        "examples/keyboard_events/Cargo.toml",
        "examples/multiple_viewports/Cargo.toml",
        "examples/popups/Cargo.toml",
        "examples/puffin_profiler/Cargo.toml",
        "examples/screenshot/Cargo.toml",
        "examples/serial_windows/Cargo.toml",
        "examples/user_attention/Cargo.toml",
        "tests/egui_tests/Cargo.toml",
        "tests/test_background_logic/Cargo.toml",
        "tests/test_egui_extras_compilation/Cargo.toml",
        "tests/test_inline_glow_paint/Cargo.toml",
        "tests/test_size_pass/Cargo.toml",
        "tests/test_ui_stack/Cargo.toml",
        "tests/test_viewports/Cargo.toml",
        "xtask/Cargo.toml"
      ],
      "largest_source_bytes": 172007,
      "source_files_sampled": 376,
      "oversized_source_files": 9,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml",
        "xtask/Cargo.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "quick-xml",
            "direct": false,
            "version": "0.39.4",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "RUSTSEC-2026-0194",
              "RUSTSEC-2026-0195"
            ],
            "fixed_version": "0.41.0",
            "advisory_count": 2,
            "oldest_advisory_days": 37
          },
          {
            "name": "bincode",
            "direct": false,
            "version": "1.3.3",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2025-0141"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 232
          },
          {
            "name": "event-listener",
            "direct": false,
            "version": "5.4.1",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0221"
            ],
            "fixed_version": "5.4.2",
            "advisory_count": 1,
            "oldest_advisory_days": 23
          },
          {
            "name": "rustybuzz",
            "direct": false,
            "version": "0.20.1",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0206"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 25
          },
          {
            "name": "ttf-parser",
            "direct": false,
            "version": "0.25.1",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0192"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 38
          },
          {
            "name": "yaml-rust",
            "direct": false,
            "version": "0.4.5",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2024-0320"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 868
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1,
          "unknown": 5
        },
        "advisory_count": 7,
        "affected_count": 6,
        "assessed_count": 561,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "crates"
      ],
      "dependencies": [
        {
          "name": "emath",
          "manifest": "crates/ecolor/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bytemuck",
          "manifest": "crates/ecolor/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "cint",
          "manifest": "crates/ecolor/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "color-hex",
          "manifest": "crates/ecolor/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/ecolor/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/ecolor/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ahash",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "parking_lot",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "raw-window-handle",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "static_assertions",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "web-time",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui_glow",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui_inspection",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "glow",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ron",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/eframe/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "epaint",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ahash",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bytemuck",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "thiserror",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "type-map",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "web-time",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "wgpu",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "winit",
          "manifest": "crates/egui-wgpu/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "raw-window-handle",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "web-time",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "winit",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "accesskit_winit",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bytemuck",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "webbrowser",
          "manifest": "crates/egui-winit/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "emath",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "epaint",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "accesskit",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ahash",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bitflags",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "itertools",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "nohash-hasher",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "smallvec",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "unicode-segmentation",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "backtrace",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ron",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/egui/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "eframe",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui_demo_lib",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui_extras",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "image",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "jiff",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "accesskit",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "accesskit_consumer",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bytemuck",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "puffin",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "puffin_http",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ehttp",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "poll-promise",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/egui_demo_app/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui_demo_lib/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui_extras",
          "manifest": "crates/egui_demo_lib/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui_demo_lib/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "unicode_names2",
          "manifest": "crates/egui_demo_lib/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "jiff",
          "manifest": "crates/egui_demo_lib/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui_demo_lib/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/egui_demo_lib/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ahash",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "enum-map",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "itertools",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "jiff",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "image",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "mime_guess2",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "syntect",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "resvg",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ehttp",
          "manifest": "crates/egui_extras/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui-winit",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bytemuck",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "glow",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "winit",
          "manifest": "crates/egui_glow/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui_inspection/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/egui_inspection/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde_bytes",
          "manifest": "crates/egui_inspection/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "rmp-serde",
          "manifest": "crates/egui_inspection/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "image",
          "manifest": "crates/egui_inspection/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui_inspection/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui_inspection/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "eframe",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "kittest",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "toml",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "egui-wgpu",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "pollster",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "image",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "wgpu",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "dify",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/egui_kittest/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bytemuck",
          "manifest": "crates/emath/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/emath/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "mint",
          "manifest": "crates/emath/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/emath/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "emath",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ecolor",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "ahash",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "font-types",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "harfrust",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "log",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "nohash-hasher",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "parking_lot",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "profiling",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "self_cell",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "skrifa",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "smallvec",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "unicode-general-category",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "unicode-segmentation",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "vello_cpu",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bytemuck",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "document-features",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "rayon",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "epaint_default_fonts",
          "manifest": "crates/epaint/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "accesskit",
            "direct": true,
            "version": "0.24.1",
            "ecosystem": "crates"
          },
          {
            "name": "accesskit_consumer",
            "direct": true,
            "version": "0.35.0",
            "ecosystem": "crates"
          },
          {
            "name": "accesskit_winit",
            "direct": true,
            "version": "0.32.2",
            "ecosystem": "crates"
          },
          {
            "name": "ahash",
            "direct": true,
            "version": "0.8.12",
            "ecosystem": "crates"
          },
          {
            "name": "backtrace",
            "direct": true,
            "version": "0.3.76",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": true,
            "version": "1.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": true,
            "version": "2.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "bytemuck",
            "direct": true,
            "version": "1.25.2",
            "ecosystem": "crates"
          },
          {
            "name": "cint",
            "direct": true,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "color-hex",
            "direct": true,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "dify",
            "direct": true,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "document-features",
            "direct": true,
            "version": "0.2.12",
            "ecosystem": "crates"
          },
          {
            "name": "ehttp",
            "direct": true,
            "version": "0.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "enum-map",
            "direct": true,
            "version": "2.7.3",
            "ecosystem": "crates"
          },
          {
            "name": "font-types",
            "direct": true,
            "version": "0.12.2",
            "ecosystem": "crates"
          },
          {
            "name": "glow",
            "direct": true,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "harfrust",
            "direct": true,
            "version": "0.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "image",
            "direct": true,
            "version": "0.25.6",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": true,
            "version": "0.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": true,
            "version": "0.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": true,
            "version": "0.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "jiff",
            "direct": true,
            "version": "0.2.35",
            "ecosystem": "crates"
          },
          {
            "name": "kittest",
            "direct": true,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": true,
            "version": "0.4.33",
            "ecosystem": "crates"
          },
          {
            "name": "mime_guess2",
            "direct": true,
            "version": "2.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "mint",
            "direct": true,
            "version": "0.5.9",
            "ecosystem": "crates"
          },
          {
            "name": "nohash-hasher",
            "direct": true,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot",
            "direct": true,
            "version": "0.12.5",
            "ecosystem": "crates"
          },
          {
            "name": "poll-promise",
            "direct": true,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "pollster",
            "direct": true,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "pollster",
            "direct": true,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "profiling",
            "direct": true,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "puffin",
            "direct": true,
            "version": "0.20.0",
            "ecosystem": "crates"
          },
          {
            "name": "puffin_http",
            "direct": true,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "raw-window-handle",
            "direct": true,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": true,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "resvg",
            "direct": true,
            "version": "0.45.1",
            "ecosystem": "crates"
          },
          {
            "name": "rmp-serde",
            "direct": true,
            "version": "1.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "ron",
            "direct": true,
            "version": "0.12.2",
            "ecosystem": "crates"
          },
          {
            "name": "self_cell",
            "direct": true,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": true,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_bytes",
            "direct": true,
            "version": "0.11.19",
            "ecosystem": "crates"
          },
          {
            "name": "skrifa",
            "direct": true,
            "version": "0.44.0",
            "ecosystem": "crates"
          },
          {
            "name": "smallvec",
            "direct": true,
            "version": "1.15.2",
            "ecosystem": "crates"
          },
          {
            "name": "static_assertions",
            "direct": true,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "syntect",
            "direct": true,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": true,
            "version": "1.0.69",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": true,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "toml",
            "direct": true,
            "version": "1.1.4+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "type-map",
            "direct": true,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-general-category",
            "direct": true,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-segmentation",
            "direct": true,
            "version": "1.13.3",
            "ecosystem": "crates"
          },
          {
            "name": "unicode_names2",
            "direct": true,
            "version": "3.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "vello_cpu",
            "direct": true,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "web-time",
            "direct": true,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "webbrowser",
            "direct": true,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu",
            "direct": true,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "winit",
            "direct": true,
            "version": "0.30.13",
            "ecosystem": "crates"
          },
          {
            "name": "ab_glyph",
            "direct": false,
            "version": "0.2.32",
            "ecosystem": "crates"
          },
          {
            "name": "ab_glyph_rasterizer",
            "direct": false,
            "version": "0.1.10",
            "ecosystem": "crates"
          },
          {
            "name": "accesskit_atspi_common",
            "direct": false,
            "version": "0.18.0",
            "ecosystem": "crates"
          },
          {
            "name": "accesskit_macos",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "crates"
          },
          {
            "name": "accesskit_unix",
            "direct": false,
            "version": "0.21.0",
            "ecosystem": "crates"
          },
          {
            "name": "accesskit_windows",
            "direct": false,
            "version": "0.32.1",
            "ecosystem": "crates"
          },
          {
            "name": "addr2line",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "crates"
          },
          {
            "name": "adler2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "alloca",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "allocator-api2",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "android-activity",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "android-properties",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "android_log-sys",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "android_logger",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "crates"
          },
          {
            "name": "android_system_properties",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "anes",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "anstream",
            "direct": false,
            "version": "0.6.21",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle",
            "direct": false,
            "version": "1.0.14",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-parse",
            "direct": false,
            "version": "0.2.7",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-query",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-wincon",
            "direct": false,
            "version": "3.0.11",
            "ecosystem": "crates"
          },
          {
            "name": "anyhow",
            "direct": false,
            "version": "1.0.103",
            "ecosystem": "crates"
          },
          {
            "name": "arboard",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "arrayref",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "arrayvec",
            "direct": false,
            "version": "0.7.8",
            "ecosystem": "crates"
          },
          {
            "name": "as-raw-xcb-connection",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "ash",
            "direct": false,
            "version": "0.38.0+1.3.281",
            "ecosystem": "crates"
          },
          {
            "name": "async-broadcast",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "crates"
          },
          {
            "name": "async-channel",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "async-executor",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "async-io",
            "direct": false,
            "version": "2.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "async-lock",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "async-process",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "async-recursion",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "async-signal",
            "direct": false,
            "version": "0.2.14",
            "ecosystem": "crates"
          },
          {
            "name": "async-task",
            "direct": false,
            "version": "4.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "async-trait",
            "direct": false,
            "version": "0.1.89",
            "ecosystem": "crates"
          },
          {
            "name": "atomic-waker",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "atspi",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "atspi-common",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "atspi-proxies",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "base64",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "crates"
          },
          {
            "name": "bincode",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "bit-set",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-set",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-vec",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-vec",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "block2",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "block2",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "blocking",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "crates"
          },
          {
            "name": "bstr",
            "direct": false,
            "version": "1.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "bumpalo",
            "direct": false,
            "version": "3.20.3",
            "ecosystem": "crates"
          },
          {
            "name": "bytemuck_derive",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "byteorder",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "byteorder-lite",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "calloop",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "calloop-wayland-source",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "cast",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "cc",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "cfg_aliases",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "cgl",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "chacha20",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium-io",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium-ll",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "clap",
            "direct": false,
            "version": "4.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "clap_builder",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "clap_lex",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "clipboard-win",
            "direct": false,
            "version": "5.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "codespan-reporting",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "color",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "color_quant",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "colorchoice",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "crates"
          },
          {
            "name": "colored",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "combine",
            "direct": false,
            "version": "4.6.7",
            "ecosystem": "crates"
          },
          {
            "name": "concurrent-queue",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "console",
            "direct": false,
            "version": "0.16.4",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation-sys",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "crates"
          },
          {
            "name": "core-graphics",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "crates"
          },
          {
            "name": "core-graphics-types",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "core_maths",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "cpufeatures",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "crc32fast",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "criterion",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "criterion-plot",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-channel",
            "direct": false,
            "version": "0.5.16",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-deque",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.20",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-utils",
            "direct": false,
            "version": "0.8.22",
            "ecosystem": "crates"
          },
          {
            "name": "crunchy",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "cursor-icon",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "data-url",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "defmt",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "defmt-macros",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "defmt-parser",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "deranged",
            "direct": false,
            "version": "0.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "directories",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "dirs-sys",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "dispatch",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "dispatch2",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "displaydoc",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "dlib",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "downcast-rs",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "dpi",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "either",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "crates"
          },
          {
            "name": "encode_unicode",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "endi",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "enum-map-derive",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "enumflags2",
            "direct": false,
            "version": "0.7.12",
            "ecosystem": "crates"
          },
          {
            "name": "enumflags2_derive",
            "direct": false,
            "version": "0.7.12",
            "ecosystem": "crates"
          },
          {
            "name": "enumn",
            "direct": false,
            "version": "0.1.14",
            "ecosystem": "crates"
          },
          {
            "name": "env_filter",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "env_logger",
            "direct": false,
            "version": "0.11.8",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "errno",
            "direct": false,
            "version": "0.3.14",
            "ecosystem": "crates"
          },
          {
            "name": "error-code",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "euclid",
            "direct": false,
            "version": "0.22.14",
            "ecosystem": "crates"
          },
          {
            "name": "event-listener",
            "direct": false,
            "version": "5.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "event-listener-strategy",
            "direct": false,
            "version": "0.5.4",
            "ecosystem": "crates"
          },
          {
            "name": "fancy-regex",
            "direct": false,
            "version": "0.16.2",
            "ecosystem": "crates"
          },
          {
            "name": "fastrand",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "fdeflate",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "fearless_simd",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "find-msvc-tools",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "flate2",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "float-cmp",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "fnv",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "crates"
          },
          {
            "name": "foldhash",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "fontconfig-parser",
            "direct": false,
            "version": "0.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "fontdb",
            "direct": false,
            "version": "0.23.0",
            "ecosystem": "crates"
          },
          {
            "name": "foreign-types",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "foreign-types-macros",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "foreign-types-shared",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "form_urlencoded",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "futures-core",
            "direct": false,
            "version": "0.3.33",
            "ecosystem": "crates"
          },
          {
            "name": "futures-io",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-lite",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "futures-macro",
            "direct": false,
            "version": "0.3.33",
            "ecosystem": "crates"
          },
          {
            "name": "futures-task",
            "direct": false,
            "version": "0.3.33",
            "ecosystem": "crates"
          },
          {
            "name": "futures-util",
            "direct": false,
            "version": "0.3.33",
            "ecosystem": "crates"
          },
          {
            "name": "gethostname",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "getopts",
            "direct": false,
            "version": "0.2.24",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "gif",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "crates"
          },
          {
            "name": "gimli",
            "direct": false,
            "version": "0.32.3",
            "ecosystem": "crates"
          },
          {
            "name": "gl_generator",
            "direct": false,
            "version": "0.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "glifo",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "glutin",
            "direct": false,
            "version": "0.32.3",
            "ecosystem": "crates"
          },
          {
            "name": "glutin-winit",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "glutin_egl_sys",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "glutin_glx_sys",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "glutin_wgl_sys",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "gpu-allocator",
            "direct": false,
            "version": "0.28.0",
            "ecosystem": "crates"
          },
          {
            "name": "guillotiere",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "half",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.16.1",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.17.1",
            "ecosystem": "crates"
          },
          {
            "name": "hermit-abi",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "hex",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "http",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "httparse",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "icu_collections",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_locale_core",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_provider",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna_adapter",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "image-webp",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "imagesize",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "is_terminal_polyfill",
            "direct": false,
            "version": "1.70.2",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "jiff-core",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "jiff-static",
            "direct": false,
            "version": "0.2.35",
            "ecosystem": "crates"
          },
          {
            "name": "jni",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "jni-macros",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys-macros",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jobserver",
            "direct": false,
            "version": "0.1.35",
            "ecosystem": "crates"
          },
          {
            "name": "jpeg-decoder",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "js-sys",
            "direct": false,
            "version": "0.3.103",
            "ecosystem": "crates"
          },
          {
            "name": "khronos-egl",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "khronos_api",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "kurbo",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "kurbo",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "lazy_static",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.189",
            "ecosystem": "crates"
          },
          {
            "name": "libloading",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "libm",
            "direct": false,
            "version": "0.2.16",
            "ecosystem": "crates"
          },
          {
            "name": "libmimalloc-sys",
            "direct": false,
            "version": "0.1.49",
            "ecosystem": "crates"
          },
          {
            "name": "libredox",
            "direct": false,
            "version": "0.1.18",
            "ecosystem": "crates"
          },
          {
            "name": "linebender_resource_handle",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "linked-hash-map",
            "direct": false,
            "version": "0.5.6",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.4.15",
            "ecosystem": "crates"
          },
          {
            "name": "litemap",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "litrs",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "lock_api",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "lz4_flex",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "memmap2",
            "direct": false,
            "version": "0.9.11",
            "ecosystem": "crates"
          },
          {
            "name": "memoffset",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "mimalloc",
            "direct": false,
            "version": "0.1.52",
            "ecosystem": "crates"
          },
          {
            "name": "mime",
            "direct": false,
            "version": "0.3.17",
            "ecosystem": "crates"
          },
          {
            "name": "miniz_oxide",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "mio",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "naga",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "naga-types",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "ndk",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "ndk-context",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "ndk-sys",
            "direct": false,
            "version": "0.6.0+11769913",
            "ecosystem": "crates"
          },
          {
            "name": "num-conv",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "num-traits",
            "direct": false,
            "version": "0.2.19",
            "ecosystem": "crates"
          },
          {
            "name": "num_enum",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "num_enum_derive",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "objc-sys",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "crates"
          },
          {
            "name": "objc2",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-app-kit",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-app-kit",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-cloud-kit",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-contacts",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-core-data",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-core-foundation",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-core-graphics",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-core-image",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-core-location",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-encode",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-foundation",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-foundation",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-io-surface",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-link-presentation",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-metal",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-metal",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-quartz-core",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-quartz-core",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-symbols",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-ui-kit",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-ui-kit",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-uniform-type-identifiers",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "objc2-user-notifications",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "object",
            "direct": false,
            "version": "0.37.3",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell_polyfill",
            "direct": false,
            "version": "1.70.2",
            "ecosystem": "crates"
          },
          {
            "name": "oorandom",
            "direct": false,
            "version": "11.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "open",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "option-ext",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "orbclient",
            "direct": false,
            "version": "0.3.55",
            "ecosystem": "crates"
          },
          {
            "name": "ordered-float",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "ordered-stream",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "owned_ttf_parser",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "crates"
          },
          {
            "name": "page_size",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "parking",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot_core",
            "direct": false,
            "version": "0.9.12",
            "ecosystem": "crates"
          },
          {
            "name": "peniko",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "percent-encoding",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "phf",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "phf",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_codegen",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "phf_generator",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "phf_generator",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_macros",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "phf_macros",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_shared",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "phf_shared",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "pico-args",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project",
            "direct": false,
            "version": "1.1.13",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project-internal",
            "direct": false,
            "version": "1.1.13",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project-lite",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "piper",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "pkg-config",
            "direct": false,
            "version": "0.3.33",
            "ecosystem": "crates"
          },
          {
            "name": "plain",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "plist",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "crates"
          },
          {
            "name": "png",
            "direct": false,
            "version": "0.17.16",
            "ecosystem": "crates"
          },
          {
            "name": "polling",
            "direct": false,
            "version": "3.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "polycool",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic-util",
            "direct": false,
            "version": "0.2.7",
            "ecosystem": "crates"
          },
          {
            "name": "potential_utf",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "powerfmt",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "ppv-lite86",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "presser",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-crate",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.107",
            "ecosystem": "crates"
          },
          {
            "name": "profiling-procmacros",
            "direct": false,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "quick-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "quick-xml",
            "direct": false,
            "version": "0.39.4",
            "ecosystem": "crates"
          },
          {
            "name": "quick-xml",
            "direct": false,
            "version": "0.41.0",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.47",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "rand_chacha",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "crates"
          },
          {
            "name": "range-alloc",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "raw-window-metal",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon-core",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "read-fonts",
            "direct": false,
            "version": "0.41.0",
            "ecosystem": "crates"
          },
          {
            "name": "redox_syscall",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "redox_syscall",
            "direct": false,
            "version": "0.5.18",
            "ecosystem": "crates"
          },
          {
            "name": "redox_syscall",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "redox_users",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "1.12.4",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.11",
            "ecosystem": "crates"
          },
          {
            "name": "renderdoc-sys",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "rfd",
            "direct": false,
            "version": "0.17.2",
            "ecosystem": "crates"
          },
          {
            "name": "rgb",
            "direct": false,
            "version": "0.8.53",
            "ecosystem": "crates"
          },
          {
            "name": "ring",
            "direct": false,
            "version": "0.17.14",
            "ecosystem": "crates"
          },
          {
            "name": "rmp",
            "direct": false,
            "version": "0.8.15",
            "ecosystem": "crates"
          },
          {
            "name": "roxmltree",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustc-demangle",
            "direct": false,
            "version": "0.1.27",
            "ecosystem": "crates"
          },
          {
            "name": "rustc-hash",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustc-hash",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "rustc_version",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": false,
            "version": "0.38.44",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "rustls",
            "direct": false,
            "version": "0.23.41",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-pki-types",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-webpki",
            "direct": false,
            "version": "0.103.13",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.23",
            "ecosystem": "crates"
          },
          {
            "name": "rustybuzz",
            "direct": false,
            "version": "0.20.1",
            "ecosystem": "crates"
          },
          {
            "name": "same-file",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "scoped-tls",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "scopeguard",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "sctk-adwaita",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "1.0.28",
            "ecosystem": "crates"
          },
          {
            "name": "serde_core",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": "1.0.150",
            "ecosystem": "crates"
          },
          {
            "name": "serde_repr",
            "direct": false,
            "version": "0.1.20",
            "ecosystem": "crates"
          },
          {
            "name": "serde_spanned",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "shlex",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "signal-hook-registry",
            "direct": false,
            "version": "1.4.8",
            "ecosystem": "crates"
          },
          {
            "name": "simd-adler32",
            "direct": false,
            "version": "0.3.10",
            "ecosystem": "crates"
          },
          {
            "name": "simd_cesu8",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "simdutf8",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "similar",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "similar-asserts",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "simplecss",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "siphasher",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "crates"
          },
          {
            "name": "slab",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "slotmap",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "smithay-client-toolkit",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "crates"
          },
          {
            "name": "smithay-clipboard",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "crates"
          },
          {
            "name": "smol_str",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "socket2",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "crates"
          },
          {
            "name": "spirv",
            "direct": false,
            "version": "0.4.0+sdk-1.4.341.0",
            "ecosystem": "crates"
          },
          {
            "name": "stable_deref_trait",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "strict-num",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "subtle",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "svgtypes",
            "direct": false,
            "version": "0.15.3",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.119",
            "ecosystem": "crates"
          },
          {
            "name": "synstructure",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "tempfile",
            "direct": false,
            "version": "3.27.0",
            "ecosystem": "crates"
          },
          {
            "name": "termcolor",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "1.0.69",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "tiff",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "time",
            "direct": false,
            "version": "0.3.53",
            "ecosystem": "crates"
          },
          {
            "name": "time-core",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "time-macros",
            "direct": false,
            "version": "0.2.31",
            "ecosystem": "crates"
          },
          {
            "name": "tiny-skia",
            "direct": false,
            "version": "0.11.4",
            "ecosystem": "crates"
          },
          {
            "name": "tiny-skia-path",
            "direct": false,
            "version": "0.11.4",
            "ecosystem": "crates"
          },
          {
            "name": "tinystr",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "tinytemplate",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec_macros",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": false,
            "version": "1.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "toml_datetime",
            "direct": false,
            "version": "1.1.1+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_edit",
            "direct": false,
            "version": "0.25.12+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "toml_parser",
            "direct": false,
            "version": "1.1.3+spec-1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "tracing",
            "direct": false,
            "version": "0.1.44",
            "ecosystem": "crates"
          },
          {
            "name": "tracing-attributes",
            "direct": false,
            "version": "0.1.31",
            "ecosystem": "crates"
          },
          {
            "name": "tracing-core",
            "direct": false,
            "version": "0.1.36",
            "ecosystem": "crates"
          },
          {
            "name": "ttf-parser",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "crates"
          },
          {
            "name": "typeid",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "crates"
          },
          {
            "name": "uds_windows",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "unicase",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-bidi",
            "direct": false,
            "version": "0.3.18",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-bidi-mirroring",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ccc",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-properties",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-script",
            "direct": false,
            "version": "0.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-vo",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-width",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "unicode_names2_generator",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "untrusted",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "ureq",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "ureq-proto",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "url",
            "direct": false,
            "version": "2.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "usvg",
            "direct": false,
            "version": "0.45.1",
            "ecosystem": "crates"
          },
          {
            "name": "utf8-zero",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "utf8_iter",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "utf8parse",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "1.23.4",
            "ecosystem": "crates"
          },
          {
            "name": "vello_common",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "version_check",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "walkdir",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasi",
            "direct": false,
            "version": "0.11.1+wasi-snapshot-preview1",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.4+wasi-0.2.12",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen",
            "direct": false,
            "version": "0.2.126",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-futures",
            "direct": false,
            "version": "0.4.76",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro",
            "direct": false,
            "version": "0.2.126",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro-support",
            "direct": false,
            "version": "0.2.126",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-shared",
            "direct": false,
            "version": "0.2.126",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-backend",
            "direct": false,
            "version": "0.3.15",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-client",
            "direct": false,
            "version": "0.31.14",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-csd-frame",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-cursor",
            "direct": false,
            "version": "0.31.14",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-protocols",
            "direct": false,
            "version": "0.32.13",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-protocols-plasma",
            "direct": false,
            "version": "0.3.12",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-protocols-wlr",
            "direct": false,
            "version": "0.3.12",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-scanner",
            "direct": false,
            "version": "0.31.10",
            "ecosystem": "crates"
          },
          {
            "name": "wayland-sys",
            "direct": false,
            "version": "0.31.11",
            "ecosystem": "crates"
          },
          {
            "name": "web-sys",
            "direct": false,
            "version": "0.3.103",
            "ecosystem": "crates"
          },
          {
            "name": "webpki-roots",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "crates"
          },
          {
            "name": "weezl",
            "direct": false,
            "version": "0.1.12",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-core",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-core-deps-apple",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-core-deps-emscripten",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-core-deps-wasm",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-core-deps-windows-linux-android",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-hal",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-naga-bridge",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "wgpu-types",
            "direct": false,
            "version": "30.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "winapi",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-i686-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-util",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-x86_64-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows",
            "direct": false,
            "version": "0.62.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-collections",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-core",
            "direct": false,
            "version": "0.62.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-future",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-implement",
            "direct": false,
            "version": "0.60.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-interface",
            "direct": false,
            "version": "0.59.3",
            "ecosystem": "crates"
          },
          {
            "name": "windows-link",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-numerics",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-result",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-strings",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.61.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows-threading",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "winnow",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.57.1",
            "ecosystem": "crates"
          },
          {
            "name": "writeable",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "x11-dl",
            "direct": false,
            "version": "2.21.0",
            "ecosystem": "crates"
          },
          {
            "name": "x11rb",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "x11rb-protocol",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "xcursor",
            "direct": false,
            "version": "0.3.10",
            "ecosystem": "crates"
          },
          {
            "name": "xkbcommon-dl",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "xkeysym",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "xml-rs",
            "direct": false,
            "version": "0.8.28",
            "ecosystem": "crates"
          },
          {
            "name": "xmlwriter",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "yaml-rust",
            "direct": false,
            "version": "0.4.5",
            "ecosystem": "crates"
          },
          {
            "name": "yoke",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "yoke-derive",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "zbus",
            "direct": false,
            "version": "5.16.0",
            "ecosystem": "crates"
          },
          {
            "name": "zbus-lockstep",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "zbus-lockstep-macros",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "zbus_macros",
            "direct": false,
            "version": "5.16.0",
            "ecosystem": "crates"
          },
          {
            "name": "zbus_names",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "zbus_xml",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.55",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.55",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom-derive",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "zeroize",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "zerotrie",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec",
            "direct": false,
            "version": "0.11.6",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec-derive",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "zune-core",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "zune-jpeg",
            "direct": false,
            "version": "0.4.21",
            "ecosystem": "crates"
          },
          {
            "name": "zvariant",
            "direct": false,
            "version": "5.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "zvariant_derive",
            "direct": false,
            "version": "5.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "zvariant_utils",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "crates"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 561,
        "direct_count": 58,
        "indirect_count": 503
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 184,
        "merged_prs": 2355,
        "open_issues": 930,
        "closed_ratio": 0.641,
        "closed_issues": 1662,
        "closed_unmerged_prs": 538
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "emilk",
          "commits": 3016,
          "avatar_url": "https://avatars.githubusercontent.com/u/1148717?v=4"
        },
        {
          "type": "User",
          "login": "lucasmerlin",
          "commits": 187,
          "avatar_url": "https://avatars.githubusercontent.com/u/8009393?v=4"
        },
        {
          "type": "User",
          "login": "rustbasic",
          "commits": 52,
          "avatar_url": "https://avatars.githubusercontent.com/u/127506429?v=4"
        },
        {
          "type": "User",
          "login": "YgorSouza",
          "commits": 50,
          "avatar_url": "https://avatars.githubusercontent.com/u/43298013?v=4"
        },
        {
          "type": "User",
          "login": "Wumpf",
          "commits": 39,
          "avatar_url": "https://avatars.githubusercontent.com/u/1220815?v=4"
        },
        {
          "type": "User",
          "login": "abey79",
          "commits": 26,
          "avatar_url": "https://avatars.githubusercontent.com/u/49431240?v=4"
        },
        {
          "type": "User",
          "login": "bircni",
          "commits": 22,
          "avatar_url": "https://avatars.githubusercontent.com/u/75789103?v=4"
        },
        {
          "type": "User",
          "login": "valadaptive",
          "commits": 16,
          "avatar_url": "https://avatars.githubusercontent.com/u/79560998?v=4"
        },
        {
          "type": "User",
          "login": "juancampa",
          "commits": 15,
          "avatar_url": "https://avatars.githubusercontent.com/u/1410520?v=4"
        },
        {
          "type": "User",
          "login": "EmbersArc",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/1352472?v=4"
        }
      ],
      "contributors_sampled": 99,
      "top_contributor_share": 0.785
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "cargo_shear.yml",
        "deploy_web_demo.yml",
        "enforce_branch_name.yml",
        "labels.yml",
        "link_checker.yml",
        "png_only_on_lfs.yml",
        "preview_build.yml",
        "preview_cleanup.yml",
        "preview_comment.yml",
        "preview_deploy.yml",
        "rust.yml",
        "taplo.yml",
        "typos.yml",
        "update_kittest_snapshots.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 6,
            "reason": "Found 20/30 approved changesets -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 44 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 3,
            "reason": "7 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2397194d5e494b55322d0153a312d1e79936c92e",
        "ran_at": "2026-08-06T05:33:06Z",
        "aggregate_score": 5.1,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "recent_prs": {
        "merged_7d": 29,
        "decided_7d": 33,
        "merged_30d": 29,
        "authors_30d": 13,
        "decided_30d": 34,
        "sample_size": 60,
        "window_days": 30,
        "sample_exhausted": false,
        "authors_probed_30d": 12,
        "newcomer_merged_30d": 4,
        "bot_prs_excluded_30d": 0,
        "newcomer_authors_30d": 5,
        "newcomer_decided_30d": 5
      },
      "ci_last_run_at": "2026-08-06T00:30:35Z",
      "oldest_open_prs": [
        {
          "number": 1263,
          "created_at": "2022-02-18T00:43:53Z",
          "last_comment_at": "2022-02-20T11:28:12Z",
          "last_comment_author": "birktj"
        },
        {
          "number": 1605,
          "created_at": "2022-05-08T23:48:05Z",
          "last_comment_at": "2023-01-20T09:25:30Z",
          "last_comment_author": "bglw"
        },
        {
          "number": 1614,
          "created_at": "2022-05-10T16:31:06Z",
          "last_comment_at": "2022-05-22T18:58:04Z",
          "last_comment_author": "enomado"
        },
        {
          "number": 1687,
          "created_at": "2022-05-27T15:36:18Z",
          "last_comment_at": "2022-06-02T17:33:26Z",
          "last_comment_author": "lj94093"
        },
        {
          "number": 1871,
          "created_at": "2022-07-30T07:57:32Z",
          "last_comment_at": "2023-04-13T07:47:35Z",
          "last_comment_author": "jackzhp"
        },
        {
          "number": 1938,
          "created_at": "2022-08-19T22:09:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2302,
          "created_at": "2022-11-13T15:58:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2356,
          "created_at": "2022-11-28T03:13:29Z",
          "last_comment_at": "2022-12-10T05:00:09Z",
          "last_comment_author": "lulitao1997"
        },
        {
          "number": 2490,
          "created_at": "2022-12-20T20:33:26Z",
          "last_comment_at": "2023-03-29T08:26:29Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 2523,
          "created_at": "2022-12-28T18:03:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2564,
          "created_at": "2023-01-09T13:10:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2633,
          "created_at": "2023-01-26T13:54:11Z",
          "last_comment_at": "2025-01-22T14:14:49Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 2701,
          "created_at": "2023-02-09T04:19:38Z",
          "last_comment_at": "2023-02-10T08:36:11Z",
          "last_comment_author": "KentaTheBugMaker"
        },
        {
          "number": 2775,
          "created_at": "2023-03-02T20:39:17Z",
          "last_comment_at": "2023-04-19T21:40:50Z",
          "last_comment_author": "NotAPenguin0"
        },
        {
          "number": 2791,
          "created_at": "2023-03-08T05:01:43Z",
          "last_comment_at": "2024-11-26T19:50:23Z",
          "last_comment_author": "jb55"
        },
        {
          "number": 2959,
          "created_at": "2023-04-26T10:47:14Z",
          "last_comment_at": "2023-04-26T10:48:42Z",
          "last_comment_author": "kamirr"
        },
        {
          "number": 3021,
          "created_at": "2023-05-23T10:17:22Z",
          "last_comment_at": "2023-06-03T01:27:46Z",
          "last_comment_author": "Massou31"
        },
        {
          "number": 3042,
          "created_at": "2023-06-01T13:24:54Z",
          "last_comment_at": "2024-01-07T15:26:58Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 3089,
          "created_at": "2023-06-17T01:19:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 3105,
          "created_at": "2023-06-22T18:04:36Z",
          "last_comment_at": "2023-09-13T15:16:58Z",
          "last_comment_author": "vvv"
        }
      ],
      "last_merged_pr_at": "2026-08-05T10:55:25Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 7,
          "created_at": "2020-06-27T19:41:54Z",
          "last_comment_at": "2025-01-18T04:02:01Z",
          "last_comment_author": "TheRedXD"
        },
        {
          "number": 56,
          "created_at": "2020-11-30T05:08:50Z",
          "last_comment_at": "2023-10-19T09:03:05Z",
          "last_comment_author": "woelper"
        },
        {
          "number": 62,
          "created_at": "2020-12-12T11:54:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 176,
          "created_at": "2021-02-12T18:49:31Z",
          "last_comment_at": "2021-09-30T17:53:18Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 186,
          "created_at": "2021-02-20T11:44:03Z",
          "last_comment_at": "2024-07-23T21:06:52Z",
          "last_comment_author": "CalinZBaenen"
        },
        {
          "number": 202,
          "created_at": "2021-03-02T22:50:31Z",
          "last_comment_at": "2021-03-23T18:18:30Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 319,
          "created_at": "2021-04-18T16:23:59Z",
          "last_comment_at": "2024-07-07T01:08:05Z",
          "last_comment_author": "pm100"
        },
        {
          "number": 335,
          "created_at": "2021-04-25T19:53:27Z",
          "last_comment_at": "2021-10-01T02:58:49Z",
          "last_comment_author": "mankinskin"
        },
        {
          "number": 358,
          "created_at": "2021-05-08T07:20:27Z",
          "last_comment_at": "2025-01-31T13:31:52Z",
          "last_comment_author": "EriKWDev"
        },
        {
          "number": 403,
          "created_at": "2021-05-16T16:28:07Z",
          "last_comment_at": "2021-05-17T15:19:19Z",
          "last_comment_author": "follower"
        },
        {
          "number": 429,
          "created_at": "2021-05-22T19:41:49Z",
          "last_comment_at": "2022-01-25T20:45:47Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 462,
          "created_at": "2021-06-04T08:36:55Z",
          "last_comment_at": "2021-12-28T16:02:03Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 478,
          "created_at": "2021-06-11T04:50:21Z",
          "last_comment_at": "2022-04-16T08:29:49Z",
          "last_comment_author": "emilk"
        },
        {
          "number": 493,
          "created_at": "2021-06-17T05:58:02Z",
          "last_comment_at": "2023-12-17T23:47:55Z",
          "last_comment_author": "AadamZ5"
        },
        {
          "number": 498,
          "created_at": "2021-06-19T01:52:54Z",
          "last_comment_at": "2025-01-30T23:25:03Z",
          "last_comment_author": "White-Rabbit-Scientific"
        },
        {
          "number": 501,
          "created_at": "2021-06-21T17:35:13Z",
          "last_comment_at": "2021-06-23T04:22:17Z",
          "last_comment_author": "parasyte"
        },
        {
          "number": 502,
          "created_at": "2021-06-22T14:21:56Z",
          "last_comment_at": "2022-08-28T11:38:44Z",
          "last_comment_author": "rquinn2"
        },
        {
          "number": 511,
          "created_at": "2021-06-24T22:11:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 513,
          "created_at": "2021-06-25T06:44:27Z",
          "last_comment_at": "2025-07-07T20:52:12Z",
          "last_comment_author": "jbuckmccready"
        },
        {
          "number": 535,
          "created_at": "2021-07-01T14:08:33Z",
          "last_comment_at": "2021-07-05T12:52:07Z",
          "last_comment_author": "mankinskin"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/emilk/egui",
    "host": "github.com",
    "name": "egui",
    "owner": "emilk"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "exceptional",
      "name": "Overall health",
      "note": "The weighted overall 80 is calibrated to 94 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 80,
            "calibrated": 94,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 94,
      "inputs": {
        "security": 60,
        "vitality": 98,
        "community": 96,
        "governance": 68,
        "calibration": "2026-08-02",
        "engineering": 81,
        "ai_readiness": 59,
        "weighted_overall_raw": 80
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "exceptional",
        "name": "Vitality",
        "value": 98,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "exceptional",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "commits_last_year": 471,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 47
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "47/52 weeks with commits",
                "points": 32.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 47
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "471 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 471
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "exceptional",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 43,
              "latest_release_tag": "0.36.0",
              "releases_from_tags": false,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 36.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "43 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 43
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~36.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 36.4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "exceptional",
        "name": "Community & Adoption",
        "value": 96,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "exceptional",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "forks": 2097,
              "stars": 29979,
              "watchers": 144,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "29,979 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 29979
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2,097 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2097
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "144 watchers",
                "points": 12,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 144
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": 7,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [
                "github.com",
                "shields.io"
              ],
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "exceptional",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "egui",
                "emath",
                "ecolor",
                "eframe",
                "epaint",
                "egui-wgpu",
                "egui_glow",
                "egui-winit"
              ],
              "dependents": null,
              "ecosystems": "crates",
              "total_downloads": 143530676,
              "monthly_downloads": 11211403
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "11,211,403 downloads/month across crates",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 11211403,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 68,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "weak",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 37,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 99,
              "top_contributor_share": 0.785
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 78% of commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 78
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "99 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 99
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 44 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "merged_prs": 2355,
              "open_issues": 930,
              "closed_issues": 1662,
              "prs_merged_7d": 29,
              "prs_decided_7d": 33,
              "prs_merged_30d": 29,
              "prs_decided_30d": 34,
              "issue_closed_ratio": 0.641,
              "closed_unmerged_prs": 538,
              "first_time_authors_30d": 5,
              "first_time_prs_merged_30d": 4,
              "first_time_prs_decided_30d": 5
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "64% of issues closed",
                "points": 26.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 64
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "2355/2893 decided PRs merged",
                "points": 24.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 2355,
                      "decided": 2893
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "4/5 first-time contributors' PRs merged in 30d",
                "points": 10.4,
                "status": "partial",
                "details": [
                  {
                    "code": "newcomer_prs_merged",
                    "params": {
                      "days": 30,
                      "merged": 4,
                      "decided": 5
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 20/30 approved changesets -- score normalized to 6",
                "points": 9,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 75,
            "inputs": {
              "followers": 7863,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "emilk",
              "public_repos": 84,
              "account_age_days": 5399
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "7,863 followers of emilk",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 7863,
                      "login": "emilk"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "84 public repos, account ~14 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 84
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 14
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "egui",
                "emath",
                "ecolor",
                "eframe",
                "epaint",
                "egui-wgpu",
                "egui_glow",
                "egui-winit"
              ],
              "ecosystems": "crates",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on crates",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 0 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "64 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 64
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "excellent",
        "name": "Engineering Quality",
        "value": 81,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "14 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "exceptional",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "gui",
                "rust",
                "game-development",
                "wasm",
                "imgui",
                "gamedev",
                "egui"
              ],
              "has_wiki": true,
              "homepage": "https://www.egui.rs/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://www.egui.rs/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "7 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 60,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.1
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 20/30 approved changesets -- score normalized to 6",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 44 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "7 existing vulnerabilities detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 561 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 561
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 7,
              "affected_packages": 6,
              "assessed_packages": 561,
              "unassessed_packages": 0,
              "affected_by_severity": "high 1, unknown 5",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 561,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 12
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 59,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "weak",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.28,
              "toolchain_manifests": [
                "Cargo.toml",
                "crates/ecolor/Cargo.toml",
                "crates/eframe/Cargo.toml",
                "crates/egui-wgpu/Cargo.toml",
                "crates/egui-winit/Cargo.toml",
                "crates/egui/Cargo.toml",
                "crates/egui_demo_app/Cargo.toml",
                "crates/egui_demo_lib/Cargo.toml",
                "crates/egui_extras/Cargo.toml",
                "crates/egui_glow/Cargo.toml",
                "crates/egui_inspection/Cargo.toml",
                "crates/egui_kittest/Cargo.toml",
                "crates/emath/Cargo.toml",
                "crates/epaint/Cargo.toml",
                "crates/epaint_default_fonts/Cargo.toml",
                "examples/confirm_exit/Cargo.toml",
                "examples/custom_3d_glow/Cargo.toml",
                "examples/custom_font/Cargo.toml",
                "examples/custom_font_style/Cargo.toml",
                "examples/custom_keypad/Cargo.toml",
                "examples/custom_style/Cargo.toml",
                "examples/custom_window_frame/Cargo.toml",
                "examples/external_eventloop/Cargo.toml",
                "examples/external_eventloop_async/Cargo.toml",
                "examples/file_dialog/Cargo.toml",
                "examples/font_variations/Cargo.toml",
                "examples/hello_android/Cargo.toml",
                "examples/hello_world/Cargo.toml",
                "examples/hello_world_par/Cargo.toml",
                "examples/hello_world_simple/Cargo.toml",
                "examples/images/Cargo.toml",
                "examples/keyboard_events/Cargo.toml",
                "examples/multiple_viewports/Cargo.toml",
                "examples/popups/Cargo.toml",
                "examples/puffin_profiler/Cargo.toml",
                "examples/screenshot/Cargo.toml",
                "examples/serial_windows/Cargo.toml",
                "examples/user_attention/Cargo.toml",
                "tests/egui_tests/Cargo.toml",
                "tests/test_background_logic/Cargo.toml",
                "tests/test_egui_extras_compilation/Cargo.toml",
                "tests/test_inline_glow_paint/Cargo.toml",
                "tests/test_size_pass/Cargo.toml",
                "tests/test_ui_stack/Cargo.toml",
                "tests/test_viewports/Cargo.toml",
                "xtask/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Cargo.toml, crates/ecolor/Cargo.toml, crates/eframe/Cargo.toml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Cargo.toml, crates/ecolor/Cargo.toml, crates/eframe/Cargo.toml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Rust (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "28 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 28,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Rust",
              "largest_source_bytes": 172007,
              "source_files_sampled": 376,
              "oversized_source_files": 9
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Rust (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "9/376 source files over 60KB",
                "points": 53.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 376,
                      "oversized": 9
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "demos",
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "demos, examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "demos, examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [
        "library",
        "application"
      ],
      "labels": [
        "library",
        "desktop"
      ],
      "scores": {
        "desktop": 9.6,
        "library": 15,
        "application": 3
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "desktop",
          "source": "registry_category:gui",
          "weight": 6
        },
        {
          "tier": "declared",
          "label": "library",
          "source": "cargo.lib",
          "weight": 6
        },
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:crates",
          "weight": 6
        },
        {
          "tier": "declared",
          "label": "desktop",
          "source": "cargo.category:gui",
          "weight": 3.6
        },
        {
          "tier": "declared",
          "label": "library",
          "source": "cargo.cdylib",
          "weight": 3.6
        },
        {
          "tier": "declared",
          "label": "library",
          "source": "cargo.publish_false",
          "weight": -3.6
        },
        {
          "tier": "structure",
          "label": "application",
          "source": "tree.cargo_main",
          "weight": 3
        },
        {
          "tier": "structure",
          "label": "library",
          "source": "tree.cargo_lib",
          "weight": 3
        }
      ],
      "artifacts": [
        {
          "path": "Cargo.toml",
          "labels": [],
          "ecosystem": "crates"
        },
        {
          "path": "crates/ecolor/Cargo.toml",
          "labels": [],
          "ecosystem": "crates"
        },
        {
          "path": "crates/eframe/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui-wgpu/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui-winit/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui_demo_app/Cargo.toml",
          "labels": [
            "library"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui_demo_lib/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui_extras/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui_glow/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui_inspection/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/egui_kittest/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/emath/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/epaint/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "crates/epaint_default_fonts/Cargo.toml",
          "labels": [
            "desktop"
          ],
          "ecosystem": "crates"
        },
        {
          "path": "xtask/Cargo.toml",
          "labels": [],
          "ecosystem": "crates"
        }
      ],
      "confidence": "high",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "First-time contributor figures cover 12 of 13 authors (cap 12)",
    "crates package 'xtask' points at a different repository (https://github.com/arcboxlabs/xtask); excluded from ecosystem scoring",
    "deps.dev does not index crates:egui@0.36.0; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-06T05:33:36.242484Z",
  "schema_version": "0.31.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/e/emilk/egui.svg",
  "full_name": "emilk/egui",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v2.5.0、模式 v0.31.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计crates.io.