Description
The incremental compile times for the Tobira backend have gotten quite annoying. touch src/api/id.rs && cargo build
takes roughly 16s for me, which is not great. And I have a Ryzen 7 7700X which is quite modern, especially regarding single core performance, which is most relevant for incremental compile times.
The full compile time (including all dependencies) with 51s isn't that bad, that's quite acceptable. But yeah the incremental compile time really makes development ... uhg.
This issue is just here to collect information on the issue and potentially track progress (or lack thereof...).
Unfortunately, it's not too surprising that Tobira takes a while to compile. We use lots of procedural macro helpers (confique
for configuration, juniper
for the GraphQL API, serde
for various (de)serializations, clap
for CLI args, reinda
for assets, ...). I don't want to shit on proc-macros, I do like the tool, but they have to be expanded and, likely more importantly, they can quickly generate quite a lot of code that rustc then has to churn through.
Some resources:
Activity