{"id":13546953,"url":"https://github.com/lucasmerlin/hello_egui","last_synced_at":"2025-05-14T14:10:04.612Z","repository":{"id":64941060,"uuid":"579802061","full_name":"lucasmerlin/hello_egui","owner":"lucasmerlin","description":"A collection of useful crates for egui","archived":false,"fork":false,"pushed_at":"2025-04-17T10:24:24.000Z","size":6216,"stargazers_count":470,"open_issues_count":8,"forks_count":38,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-12T05:36:57.319Z","etag":null,"topics":["drag-and-drop","egui","infinite-scroll","pull-to-refresh","rust","ui","virtual-list"],"latest_commit_sha":null,"homepage":"https://lucasmerlin.github.io/hello_egui/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucasmerlin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-19T00:29:35.000Z","updated_at":"2025-05-12T01:02:28.000Z","dependencies_parsed_at":"2023-02-03T22:46:35.956Z","dependency_job_id":"d91f29ee-d541-4eda-aefa-f1cf421011c3","html_url":"https://github.com/lucasmerlin/hello_egui","commit_stats":{"total_commits":391,"total_committers":7,"mean_commits":"55.857142857142854","dds":0.08951406649616367,"last_synced_commit":"ee78393e13dbe7ba8fe3614bbdc19c66aa2d8dde"},"previous_names":["lucasmerlin/egui_dnd"],"tags_count":89,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasmerlin%2Fhello_egui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasmerlin%2Fhello_egui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasmerlin%2Fhello_egui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucasmerlin%2Fhello_egui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucasmerlin","download_url":"https://codeload.github.com/lucasmerlin/hello_egui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253685169,"owners_count":21947301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drag-and-drop","egui","infinite-scroll","pull-to-refresh","rust","ui","virtual-list"],"created_at":"2024-08-01T12:00:48.701Z","updated_at":"2025-05-14T14:09:59.575Z","avatar_url":"https://github.com/lucasmerlin.png","language":"Rust","funding_links":[],"categories":["Libraries"],"sub_categories":[],"readme":"# Hello Egui!\n\nThis project contains a collection of egui tools I've created during\ndevelopment of the native app for \u003chttps://hellopaint.io\u003e (still unreleased, stay tuned!).\n\nThe crates have varying levels of maturity, some are ready for use in production\nwhile others are highly experimental.\nIf you're interested in using one of the experimental crates, open an issue, and I'll try to\nrelease it on crates.io.\n\nJoin the [hello_egui channel on the egui](https://discord.gg/MSftBbKSYm) discord for questions and discussions.\n\n## Example app\n\nAn example using most of the crates is available [here](https://lucasmerlin.github.io/hello_egui/).\nSource code in [fancy-example](fancy-example).\n\n## [**hello_egui**](https://crates.io/crates/hello_egui), this crate\n\nA collection of reexports for the other crates, if you want to use all or most of them.\nYou can toggle individual features to only include the crates you need. By default, all crates are included.\nOnly includes crates that have been released on [crates.io](https://crates.io/).\n\n## **Mature** Crates\n\n- [egui_dnd](crates/egui_dnd)\n    - Drag \u0026 drop sorting library for egui\n    - released on [crates.io](https://crates.io/crates/egui_dnd)\n\n- [egui_flex](crates/egui_flex)\n    - Flexbox layout for egui\n    - released on [crates.io](https://crates.io/crates/egui_flex)\n\n- [egui_inbox](crates/egui_inbox)\n    - Simple utility for sending messages to egui uis from other threads / async functions\n    - released on [crates.io](https://crates.io/crates/egui_inbox)\n\n- [egui_virtual_list](crates/egui_virtual_list)\n    - Flexible virtual scroll widget for egui with support for dynamic heights and complex layouts\n    - Compatible with [egui_dnd](crates/egui_dnd) (let me know if you need an example)\n    - released on [crates.io](https://crates.io/crates/egui_virtual_list)\n\n- [egui_infinite_scroll](crates/egui_infinite_scroll)\n    - Infinite scroll based on [egui_virtual_list](crates/egui_virtual_list)\n    - released on [crates.io](https://crates.io/crates/egui_infinite_scroll)\n\n- [egui_router](crates/egui_router)\n    - A SPA router for egui with support for transitions\n    - released on [crates.io](https://crates.io/crates/egui_router)\n\n- [egui_form](crates/egui_form)\n    - Form validation for egui\n    - released on [crates.io](https://crates.io/crates/egui_form)\n\n- [egui_pull_to_refresh](crates/egui_pull_to_refresh)\n    - Adds pull to refresh functionality to egui.\n    - released on [crates.io](https://crates.io/crates/egui_pull_to_refresh)\n\n- [egui_suspense](crates/egui_suspense)\n    - A helper to display loading, error and retry uis when waiting for asynchronous data.\n    - released on [crates.io](https://crates.io/crates/egui_suspense)\n\n- [egui_thumbhash](crates/egui_thumbhash)\n    - Easily use [thumbhashes](https://evanw.github.io/thumbhash/) in egui.\n    - For a showcase, check the [gallery example](https://lucasmerlin.github.io/hello_egui/#/example/gallery).\n    - released on [crates.io](https://crates.io/crates/egui_thumbhash)\n\n- [egui_material_icons](crates/egui_material_icons)\n    - Material icons for egui\n    - released on [crates.io](https://crates.io/crates/egui_material_icons)\n\n## **Experimental** Crates\n\n- [egui_animation](crates/egui_animation)\n    - Animation utilities for egui\n    - Experimental, released on [crates.io](https://crates.io/crates/egui_animation), used internally\n      by [egui_dnd](crates/egui_dnd)\n\n- [egui_taffy](crates/egui_taffy)\n    - Adds flexbox layout to egui using [taffy](https://github.com/DioxusLabs/taffy)\n    - Highly experimental, unreleased\n\n- [egui_webview](crates/egui_webview)\n    - WebView widget for egui, based on wry\n    - Experimental, unreleased\n    - Warning: Currently uses some unsafe to get around Send / Sync limitations,\n      so it probably has some safety issues.\n\n- [perfect_cursors](crates/perfect_cursors)\n    - A port of steve ruiz's [perfect cursors](https://github.com/steveruizok/perfect-cursors) to rust\n    - independent of egui, but there is a egui example\n\n- [hello_egui_utils](crates/hello_egui_utils)\n    - Collection of utilities used by the other crates\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasmerlin%2Fhello_egui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasmerlin%2Fhello_egui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasmerlin%2Fhello_egui/lists"}