DioxusLabs/dioxus

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

Open

#5,394 opened on Mar 20, 2026

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

Repository metrics

Stars
 (36,038 stars)
PR merge metrics
 (Avg merge 16d 13h) (9 merged PRs in 30d)

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