deps-rs / deps.rs

Keep your dependencies up-to-date
https://deps.rs
Apache License 2.0
423 stars 26 forks source link

web server upgrade #221

Open robjtede opened 3 months ago

robjtede commented 3 months ago

Given the trimmed down scope of hyper v1, it's probably going to be just as much work, if not more, to upgrade to that vs any other server lib/framework.

Possibilities, alphabetical:

Contributors, feel free to edit this post to add your ideas to the list.

robjtede commented 3 months ago

My bias is obviously towards Actix Web but it's interesting being involved with a different flavored project to keep knowledge of "the other side" fresh.

Enet4 commented 3 months ago

I'm not sure why I locked this issue. Must've been a misclick, sorry. 😨

It is interesting that this project has used Hyper for the web server, which AFAIUI is more of a library than a framework, and has required the developers involved to do a lot more work from the ground up in order to have a fully functional server. I agree that we are better off with picking a more substantial web framework this time. Aside from hyper, I see no impediment to the use of any of the frameworks listed, they all seem capable of fulfilling our needs. I happen to only have some experience in Actix Web, but the other ones should not be too complicated to pick up either.

In terms of popularity, Axum has more total crate downloads (44.8M), followed by Actix Web (19.7M).

Given the isomorphic nature of Leptos, someone experienced with it could clarify if it would require us to rewrite the frontend, or just make way for other frontend niceties in the future.

robjtede commented 3 months ago

In terms of popularity, Axum has more total crate downloads

FWIW, those numbers are skewed quite sigificantly by its default inclusion in tonic. If just the router was split to a separate crate you'd see a marked decrease.

I'm gonna spend some time today doing both conversions and we can see with PRs which is nicer for us.

robjtede commented 3 months ago
robjtede commented 3 months ago

(@)contributors Would appreciate opinions on the above PRs.

Confirmed on Tokio's discord that axum (full) is the only variant here which doesn't properly support our current routing structure. We'd have to do manual path parsing for /repo/... routes.