Jonathan Kelley 3d699e7a75 Match on more places for asset reloading 1 年之前
..
dist e004c1722f set the required environment variable for manganis support 1 年之前
examples ad7a350d2e fix hotreloading issues in the CLI 1 年之前
src 3d699e7a75 Match on more places for asset reloading 1 年之前
.gitignore e6c540320e rename package to dioxus-fullstack 2 年之前
Cargo.toml 36fe5e30cb chore: clean up cargo.tomls to enable releasing 1 年之前
README.md 214a907adc Upgrade to axum 0.7, drop 3rd party adapters 1 年之前

README.md

Dioxus Fullstack

Crates.io MIT licensed Build Status Discord chat

Website | Guides | API Docs | Chat

Fullstack utilities for the Dioxus framework.

Features

  • Intigrations with the Axum, Salvo, and Warp server frameworks with utilities for serving and rendering Dioxus applications.
  • Server functions allow you to call code on the server from the client as if it were a normal function.
  • Instant RSX Hot reloading with dioxus-hot-reload.
  • Passing root props from the server to the client.

Example

Full stack Dioxus in under 50 lines of code

#![allow(non_snake_case)]
use dioxus::prelude::*;
use dioxus_fullstack::prelude::*;

// On the web, run our client code
#[cfg(feature = "web")]
fn main() {
    dioxus_web::launch_with_props(
        app,
        get_root_props_from_document().unwrap_or_default(),
        dioxus_web::Config::new().hydrate(true),
    );
}

// On the server, run a simple warp server
#[cfg(feature = "server")]
#[tokio::main]
async fn main() {
    // Automatically handles server side rendering, hot reloading intigration, and hosting server functions
    warp::serve(serve_dioxus_application("", ServerConfig::new(app, ())))
        .run(([127, 0, 0, 1], 8080))
        .await;
}

fn app() -> Element {
    let meaning = use_signal(|| None);

    rsx! {
        h1 { "Meaning of life: {meaning:?}" }
        button {
            onclick: move |_| async move {
                if let Ok(data) = get_meaning("life the universe and everything".into()).await {
                    meaning.set(data);
                }
            },
            "Run a server function"
        }
    }
}

#[server]
async fn get_meaning(of: String) -> Result<Option<u32>, ServerFnError> {
    Ok(of.contains("life").then(|| 42))
}

Getting Started

To get started with full stack Dioxus, check out our getting started guide, or the full stack examples.

Contributing

  • Report issues on our issue tracker.
  • Join the discord and ask questions!

License

This project is licensed under the MIT license.

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.