DioxusLabs/dioxus

Please change the function signature of `dioxus::server::router` to allow users to set the state type

Open

#5394 opened on Mar 20, 2026

View on GitHub
 (5 comments) (0 reactions) (0 assignees)Rust (36,038 stars) (1,655 forks)batch import
enhancementfullstackgood first issue

Description

Feature Request

I want to be able to set the state type on the router that's created when using the dioxus::server::router function.

Implement Suggestion

The function is located in https://github.com/DioxusLabs/dioxus/blob/main/packages/fullstack-server/src/launch.rs

line 96.

change it from:

pub fn router(app: fn() -> Element) -> Router {
//....
}

to:

pub fn router<State = ()>(app: fn() -> Element) -> Router<State> { // Setting the default to `()` should ensure compatability with existing apps
//....
}

That way I can do this:

dioxus::server::router::<crate::server::state::ArcStore>(App).with_state(store) //  a struct wrapped in an Arc 

You'll probably have to update some of the other functions that expect just a Router like serve.

Contributor guide