dip
dip copied to clipboard
Rust application framework focuses on composability, ECS and Web3. Powered by Bevy game engine. From desktop apps to the Metaverse.
bevy_dioxus
Write cross-platform application with React-like declarative UI framework
and scalable ECS architecture all in Rust.
WARNING:
bevy_dioxus
is still in the very early stages of development.
use bevy::prelude::*;
use bevy_dioxus::desktop::prelude::*;
use dioxus::prelude::*;
fn main() {
App::new()
.insert_resource(WindowDescriptor {
title: "Bevy Dioxus Plugin Example".to_string(),
..Default::default()
})
.add_plugin(DioxusPlugin::<EmptyGlobalState, (), ()>::new(Root))
.run();
}
fn Root(cx: Scope) -> Element {
cx.render(rsx! {
h1 { "Hello, World !" }
})
}
About Dioxus and Bevy
Dioxus
Dioxus is a cross-platform declarative UI framework. It provides familiar features that React developer expects such as component, state, props, hooks, global state, and router. If you familiar with any modern state driven UI framework, you should be able to read or write Dioxus components without knowing Rust.
Bevy
Bevy is a cutting-edge game engine in Rust based on Entity Component System(ECS) design pattern. Think of it as a global state management tool like Redux but much more performant because all systems will run concurrently as much as possible. Thanks to its plugin system, there's already a handlfull of third-party Bevy plugins out there. Imagine implemnenting core logic as CorePlugin
seperated from UI layer. You may start with bevy_dioxus
to build desektop application. Then let's say you want to release a metaverse edition at some point in the future, it's as simple as swapping UI plugin to Bevy's 3d rendering plugin while still using the same CorePlugin.
Examples
Make sure to install all prerequisites for Tauri. Prerequisites
gh repo clone JunichiSugiura/bevy_dioxus
cd bevy_dioxus
cargo run --example counter
cargo run --example todomvc
Find more examples in examples/ directory.