Skip to content

Distributed building of projects #32664

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mmatyas opened this issue Apr 1, 2016 · 7 comments
Closed

Distributed building of projects #32664

mmatyas opened this issue Apr 1, 2016 · 7 comments

Comments

@mmatyas
Copy link
Contributor

mmatyas commented Apr 1, 2016

Building big projects, where many additional crates are used (eg. Servo) can be fairly slow, so I would like to set up a distributed build system. I'm mainly thinking about using distcc/icecc, where you can set up a toolchain package to use on the build slaves, but I don't know if Rust/Cargo could operate in such way.
Is this technically possible? If not, is it because of a design decision, or some other limitations?

@brson
Copy link
Contributor

brson commented Apr 1, 2016

It's techncally possible to create a distributed build system for Rust, but it will likely amount to an alternate implementation of Cargo. There has been no groundwork toward this at all. If you want to get started then I'd suggest writing a distributed cargo from scratch.

Here's a related Cargo bug.

internals would be a good place to discuss this. I'm going to close this issue - if you'd like to have an issue open for it cargo is a good place to put it.

@brson brson closed this as completed Apr 1, 2016
@bergercookie
Copy link

@mmatyas you can probably use sccache nowadays. It supports both caching of already built artifacts as well as distributed compilation like icecream:

sccache also provides icecream-style distributed compilation (automatic packaging of local toolchains) for all supported compilers (including Rust). The distributed compilation system includes several security features that icecream lacks such as authentication, transport layer encryption, and sandboxed compiler execution on build servers. See the distributed quickstart guide for more information.

@gxtaillon
Copy link

gxtaillon commented Jan 23, 2022

@mmatyas you can probably use sccache nowadays. It supports both caching of already built artifacts as well as distributed compilation like icecream:

sccache also provides icecream-style distributed compilation (automatic packaging of local toolchains) for all supported compilers (including Rust). The distributed compilation system includes several security features that icecream lacks such as authentication, transport layer encryption, and sandboxed compiler execution on build servers. See the distributed quickstart guide for more information.

Somewhat tangentially related, but sscache does not support ARM at this time (see mozilla/sccache#656), so it would not be possible to use it on a raspberry pi farm to speed up iterative development.

@Goosegit11
Copy link

Goosegit11 commented Sep 19, 2024

@gxtaillon Why would you use Raspberry to compile anyway? Isn't it slow?
well, I can expect the farm to not be that slow, but why not just buy a computer?

@satmandu
Copy link

The Raspberry Pi 5 is actually decently fast, with NVMe storage and up to 8Gb of ram. A compile on a current RPI5 device can be ~ 75% of the speed of a compile on an older skylake i3 machine, while using much less power...

@Goosegit11
Copy link

Goosegit11 commented Sep 20, 2024

but Pi 5 is expensive

@satmandu
Copy link

but Pi 5 is expensive

$80 US... And well supported...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants