I really like Rust, and I'm honestly in love with it. I never thought I'd go back to Go, especially considering some of its significant shortcomings for me: undefined nil, lack of proper enums and match, no Result or Option, etc.
But over the last few weeks, as my projects have grown significantly, I've started seeing development build times (edit → save → run) of 30–50 seconds, even after trying every remedy (for example, everything listed here).
I can't wait that long.
I need to use Windows and my Rust applications are almost all web servers, and after even small code changes, I need to be able to immediately verify that everything still works — manually, without automated tests or e2e.
So the time between pressing Ctrl + S and having my Axum server reload (using watchexec) has become unbearable.
I was seriously considering dropping everything and going back to Go.
Then I discovered this: GitHub - dennj/axum-hotreload: rust axum hotreload · GitHub.
I'm not the author of that project!
It solves most of my problems because the exact thing I can't stand anymore — waiting for the project to rebuild — is what this fantastic project addresses.
There are still a few bugs. I've filed an issue, but I think I've also fixed one of them in a local build, so I'll update the issue soon.
Do you think there could be problems with using this in daily development? I haven't migrated my real projects yet because I'm currently restructuring everything and removing the incredibly slow async-graphql.
I tried a project with 1,000 Axum routes, and from the moment I save the file to the moment the server is ready again, it takes about 1 second.
I couldn't believe it!
What do you think? Is there anything better? Are there any problems with using such solutions in development?