2023-05-02 15:15:34 +00:00
# Dioxus Fullstack
2023-04-03 18:58:54 +00:00
[![Crates.io][crates-badge]][crates-url]
[![MIT licensed][mit-badge]][mit-url]
[![Build Status][actions-badge]][actions-url]
[![Discord chat][discord-badge]][discord-url]
2023-05-02 15:15:34 +00:00
[crates-badge]: https://img.shields.io/crates/v/dioxus-fullstack.svg
[crates-url]: https://crates.io/crates/dioxus-fullstack
2023-04-03 18:58:54 +00:00
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: https://github.com/dioxuslabs/dioxus/blob/master/LICENSE
[actions-badge]: https://github.com/dioxuslabs/dioxus/actions/workflows/main.yml/badge.svg
[actions-url]: https://github.com/dioxuslabs/dioxus/actions?query=workflow%3ACI+branch%3Amaster
[discord-badge]: https://img.shields.io/discord/899851952891002890.svg?logo=discord& style=flat-square
[discord-url]: https://discord.gg/XgGxMSkvUM
[Website ](https://dioxuslabs.com ) |
2024-03-27 02:17:02 +00:00
[Guides ](https://dioxuslabs.com/learn/0.5/ ) |
2023-05-02 15:15:34 +00:00
[API Docs ](https://docs.rs/dioxus-fullstack/latest/dioxus_sever ) |
2023-04-03 18:58:54 +00:00
[Chat ](https://discord.gg/XgGxMSkvUM )
Fullstack utilities for the [`Dioxus` ](https://dioxuslabs.com ) framework.
# Features
2024-03-27 02:17:02 +00:00
- Integrates with the [Axum ](https::/docs.rs/dioxus-fullstack/latest/dixous_server/axum_adapter/index.html ) server framework with utilities for serving and rendering Dioxus applications.
2023-05-02 15:15:34 +00:00
- [Server functions ](https::/docs.rs/dioxus-fullstack/latest/dixous_server/prelude/attr.server.html ) allow you to call code on the server from the client as if it were a normal function.
2023-04-03 18:58:54 +00:00
- Instant RSX Hot reloading with [`dioxus-hot-reload` ](https://crates.io/crates/dioxus-hot-reload ).
2023-05-02 15:15:34 +00:00
- Passing root props from the server to the client.
2023-04-03 18:58:54 +00:00
# Example
2024-03-27 02:17:02 +00:00
Full stack Dioxus in under 30 lines of code
2023-04-03 18:58:54 +00:00
2024-04-17 22:08:38 +00:00
```rust, no_run
2023-04-03 18:58:54 +00:00
#![allow(non_snake_case)]
use dioxus::prelude::*;
fn main() {
2024-03-27 02:17:02 +00:00
launch(App);
2024-02-16 02:05:30 +00:00
}
2024-03-27 02:17:02 +00:00
#[component]
fn App() -> Element {
2024-04-17 22:08:38 +00:00
let mut meaning = use_signal(|| None);
2024-02-16 02:05:30 +00:00
2024-01-14 05:12:21 +00:00
rsx! {
2024-02-16 02:05:30 +00:00
h1 { "Meaning of life: {meaning:?}" }
2023-04-03 18:58:54 +00:00
button {
2024-02-16 02:05:30 +00:00
onclick: move |_| async move {
if let Ok(data) = get_meaning("life the universe and everything".into()).await {
meaning.set(data);
2023-04-03 18:58:54 +00:00
}
},
"Run a server function"
}
2024-02-16 02:05:30 +00:00
}
2023-04-03 18:58:54 +00:00
}
2024-02-16 02:05:30 +00:00
#[server]
2023-04-03 18:58:54 +00:00
async fn get_meaning(of: String) -> Result< Option < u32 > , ServerFnError> {
Ok(of.contains("life").then(|| 42))
}
```
## Getting Started
2024-03-28 01:42:07 +00:00
To get started with full stack Dioxus, check out our [getting started guide ](https://dioxuslabs.com/learn/0.5/getting_started ), or the [full stack examples ](https://github.com/DioxusLabs/dioxus/tree/master/packages/fullstack/examples ).
2023-04-03 18:58:54 +00:00
## Contributing
- Report issues on our [issue tracker ](https://github.com/dioxuslabs/dioxus/issues ).
- Join the discord and ask questions!
## License
This project is licensed under the [MIT license].
[mit license]: https://github.com/DioxusLabs/dioxus/blob/master/LICENSE-MIT
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in Dioxus by you shall be licensed as MIT without any additional
terms or conditions.