this post was submitted on 01 Jan 2025
38 points (100.0% liked)

Rust Programming

8259 readers
1 users here now

founded 5 years ago
MODERATORS
 

axum is an ergonomic and modular web framework built with Tokio, Tower, and Hyper

top 8 comments
sorted by: hot top controversial new old
[โ€“] [email protected] 6 points 1 week ago (1 children)

We got done upgrading to 0.7 at $DAYJOB just a few weeks ago. ๐Ÿซ 

But this release does look significantly more manageable. 0.7 was the release where they switched to http 1.0 and hyper 1.0, which meant we had to upgrade the entire networking stack in one fell swoop. And it's a distributed application, so there's a lot of components that do networking...

[โ€“] [email protected] 3 points 1 week ago (1 children)

Same situation here :D

Were you also blocked by opentelemetry?

[โ€“] [email protected] 2 points 1 week ago (1 children)

Yeah, it was kind of the last real blocker, but we have a somewhat special setup where we serve HTTP and gRPC on the same port, for which we had integrated Axum with Tonic. Before the 0.7 release, Axum had an example for how to do this. After the release, that example was commented out with a TODO. So, we were kind of waiting for that to be documented. I mean, I didn't have terribly high hopes, as they probably wouldn't put a TODO in there, if it was trivial to upgrade, but if they struggled with it, I really didn't want to have to figure it out myself.

But they seem to have actually even removed the example now, so I guess, it was the right call to just push through and throw down whatever ugly code makes it work...

[โ€“] [email protected] 3 points 1 week ago

Ah yeah, we recently removed that example because it was kind of hard to upgrade in a nice way. One could likely take the example from the PR branch here and submit it to tonic instead. I think they might have a bigger interest in having it.

[โ€“] [email protected] 0 points 1 week ago (2 children)

every once in a while i get it in my head to follow some web tutorial for a rust thing but then i grow weary knowing that syntax and structure will have changed dramatically in the month or two since the guide was made

[โ€“] [email protected] 6 points 1 week ago* (last edited 6 days ago)

FWIW, the last breaking release of axum before this came out in Nov 2023.

I would also argue that the vast majority of axum tutorials still "work" - your app would panic at startup if using the old path capture syntax with a note that the syntax changed which should immediately get you back on track, and I wouldn't expect the other features that were changed in a breaking manner to be used in tutorials much.

[โ€“] [email protected] 2 points 1 week ago (1 children)

Rust is an awesome language, but an outright disconcerting percentage of libraries have versions starting with "0", so I get what you mean. Keeping your dependencies up to date is usually no biggie, but it's definitely not always the easiest. There's also a bit of churn in what is considered the correct way to do things. Some stuff is settled, but some definitely isn't. So I get it if you don't want to jump in just yet.

[โ€“] taladar 2 points 6 days ago

Out of all the languages I have ever worked with upgrading dependencies in Rust is literally the easiest. All the times when that was hard in Rust it was hard for reasons that literally affect all languages such as a library that had become unmaintained or a significant API change to an obscure library. The major libraries implementing common functionality are all very well managed and barely ever have breaking changes.