Звіт у форматі 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"
}