top | item 31132659

Show HN: Fleet – Experimental build tool for Rust that’s up to 5x faster

63 points| VarunPotti | 3 years ago | reply

Fleet is an experimental fast, lightweight, open-source, build tool for Rust.

Builds with Fleet enabled are up-to 5x faster!

For a production repository (infinyon/fluvio) which we tested, we were able to cut down our incremental build times from 29 seconds down to 9 seconds, boosted by Fleet. We saw even better results on dimensionhq/volt, with our build times cut down from 3 minutes to just 1 minute - a 3x speed improvement!

How does fleet work?

Fleet works by optimizing your builds using existing tooling available in the Rust ecosystem, including seamlessly integrating sccache, lld, zld, ramdisks (for those using WSL or HDD's) et al.

You can get fleet at the official website.

Check out fleet over at https://github.com/dimensionhq/fleet and our website at https://fleet.rs

Looking forward to your feedback and thoughts!

25 comments

order
[+] vladvasiliu|3 years ago|reply
The site and repo readme are quite light on details on how this works.

Does it do anything else besides using sccache and lld/zld? I'd expect so, since these tools don't require rust nightly, whereas fleet does.

---

Edit:

After a quick look over the code, it also sets codegen units to 256, but doesn't seem to do anything else.

I see the same improvements adding manually sccache and mold to ~/.cargo/config.toml when building volt, without touching the repo's Cargo.toml.

standard rust config: 1m20s

sccache + mold: 30s

I ran the tests with Rust 1.60.0, on Linux, on an AMD 5850U (6 core, mobile).

[+] XtremeDevX|3 years ago|reply
It also uses ramdisk on WSL or for those who use hard-drives for builds.

Also great question about using nightly, we're using a shared-generics flag that requires nightly (and speeds up build times).

We're working on making this more configurable to enable / disable what features you want.

[+] XtremeDevX|3 years ago|reply
Our main goal building fleet was to make it really easy to have an optimized CI/CD pipeline and local development process for faster builds.

Our go-to linker was actually mold until we realized that their license is not compatible with ours.

We also use shared-generics to try to speed up builds, along with the ramdisk that I previously mentioned.

[+] Klasiaster|3 years ago|reply
Sounds interesting, do you want to share the ~/.cargo/config.toml entries?
[+] pedrocr|3 years ago|reply
The 5850U is the 8 core part. Maybe you mean 5650U?
[+] lewantmontreal|3 years ago|reply
Nice, faster rust builds are always welcome.

I wonder if in the future some service might even offer prebuilt crates for the various architectures. I think that idea was brought up at some point.

[+] johnwoods|3 years ago|reply
As noted by another HN user, it's clear that this doesn't do anything interesting on Linux. Also, higher codegen units will produce slower code at times. Overall, on Linux I do not notice any significant improvement in build times (we already use sccache)
[+] paulgb|3 years ago|reply
I’m excited to see this! Given that sccache integrates with cloud storage, this looks fairly straightforward to integrate in a CI/CD workflow, did I get that right?
[+] VarunPotti|3 years ago|reply
Yep, we also made sure that we include examples so that you can easily use this with github workflows, it configures & caches all the installed apps so that you would get really fast builds . https://fleet.rs/docs/ci/linux
[+] the__alchemist|3 years ago|reply
Top line: > Fleet is the blazing fast build tool

My primate pattern-matching brain says this is functionality-poor compared to its alternatives, or the alternatives it compares to are poor examples.

[+] qeternity|3 years ago|reply
> For a production repository (infinyon/fluvio) which we tested, we were able to cut down our incremental build times from 29 seconds down to 9 seconds, boosted by Fleet. We saw even better results on dimensionhq/volt, with our build times cut down from 3 minutes to just 1 minute - a 3x speed improvement!

Not sure your maths are correct here.