Единая кодовая база для всех платформ
Dioxus позиционируется как инструмент для создания кроссплатформенных приложений с использованием языка Rust. Фреймворк позволяет разрабатывать интерфейсы для веб-браузеров, настольных операционных систем (macOS, Linux, Windows) и мобильных устройств (iOS, Android) из одного проекта. Ключевая особенность — отсутствие необходимости в IPC (межпроцессном взаимодействии) для десктопных приложений благодаря нативному рендерингу через Webview или экспериментальный движок WGPU.
Производительность и размер бинарников
Разработчики подчеркивают высокую эффективность Dioxus, сравнивая его с популярными JS-фреймворками. "Hello world" приложение на Dioxus для веба весит около 50 КБ, что сопоставимо с React, но при этом использует WebAssembly. Для десктопных и мобильных приложений бинарные файлы оптимизируются до размера менее 5 МБ. Фреймворк использует сигнальную систему управления состоянием, заимствуя лучшие практики из React, Solid и Svelte, что обеспечивает реактивность без лишних вычислений.
Инструменты разработки и горячая перезагрузка
Основной упор сделан на скорость итераций. Команда `dx serve` запускает встроенный сервер разработки, который поддерживает горячую перезагрузку (hot-reloading) разметки и стилей за миллисекунды. Экспериментальная функция `dx serve --hotpatch` позволяет обновлять код на Rust в реальном времени без полной пересборки. Для сборки проектов используется CLI-инструмент `dx bundle`, который автоматически применяет сжатие WASM, минификацию и генерацию изображений в формате .avif.
Полноценный Fullstack-фреймворк
Dioxus глубоко интегрирован с фреймворком `axum` для Rust, предоставляя встроенные возможности для серверной части. Среди них: WebSockets, Server-Sent Events (SSE), стриминг, загрузка файлов, серверный рендеринг (SSR), гидратация и middleware. Это позволяет создавать полноценные fullstack-приложения, где клиентская и серверная логика тесно связаны, а серверные функции (Server Functions) вызываются напрямую из клиентского кода.
| Платформа | Метод рендеринга | Особенности | Размер бинарника |
|---|---|---|---|
| Web | WebAssembly (DOM) | SSR, Hot-reload, ~50kb | ~50 KB |
| Desktop | Webview / WGPU | Нативный доступ, без IPC | < 3 MB |
| Mobile | Webview / WGPU | Android (.apk), iOS (.ipa) | < 5 MB |
Поддержка сообщества и лицензирование
Проект развивается командой инженеров, поддерживаемой FutureWei, Satellite.im и GitHub Accelerator. Исходный код доступен под двойной лицензией MIT или Apache-2.0. Для установки CLI рекомендуется использовать `cargo binstall` или скрипт установки с официального сайта. Примеры кода доступны в репозитории GitHub, где стабильная версия 0.6 находится в ветке `0.6`, а экспериментальные функции — в `main`.
Источник: Github ↗
