Об этом проекте

egui (произносится "и-гуи") — это простая, быстрая и высокопортативная библиотека графического интерфейса в режиме немедленного рендеринга для Rust. Она работает в вебе, нативно и может быть интегрирована в игровые движки. Библиотека спроектирована как самая простая в использовании GUI-библиотека для Rust, с акцентом на простоту, отзывчивость и портативность. Ключевые особенности включают: - **Виджеты**: Метки, кнопки, ползунки, редактирование текста, выбор цвета и многое другое. - **Макеты**: Горизонтальные, вертикальные, колонки и автоматический перенос. - **Редактирование текста**: Многострочное, копирование/вставка, отмена и поддержка эмодзи. - **Окна**: Перемещение, изменение размера, сворачивание и закрытие с автоматическим размером и позиционированием. - **Области**: Изменение размера, прокрутка, сворачиваемые заголовки и панели. - **Рендеринг**: Сглаженные линии, круги, текст и выпуклые многоугольники. - **Доступность**: Опциональная поддержка AccessKit для программ чтения с экрана. - **Настройка**: Цвета, отступы, шрифты и размеры через `Context::set_style`. Она использует парадигму немедленного режима, где интерфейс перестраивается каждый кадр, упрощая код за счет устранения обратных вызовов и проблем синхронизации состояния. Этот подход делает его простым в использовании, но может быть менее мощным для сложных макетов. Официальные интеграции включают `eframe` для веба и нативных приложений, `egui_glow` для рендеринга OpenGL, `egui-wgpu` для WebGPU и `egui-winit` для оконных систем. Сторонние интеграции доступны для игровых движков, таких как Bevy. Для разработчиков egui идеально подходит для создания простых GUI в Rust или добавления GUI в игровой движок. Это не фреймворк, а библиотека, которую вы вызываете, и она не предназначена для нативного внешнего вида или сложных интерфейсов с сохранением состояния.