---
# System prepended metadata

title: Remote-Build System 1

---

# Remote-Build System 1

## Existing Systems

### Volt

Built by Dimension. Main optimisation is pre-flattening dependency trees in its own registry to reduce the number of network calls (round trips) when recursively resolving dependency trees.

### Fleet

Built by Dimension. Uses different optimizations available in the Rust industry to optimize Rust builds - biggest performance boost from Mold linker & SCCache.

### Cargo

Doesn't work like NPM. Cargo has a fat central index which is pulled at once. Main performance issue here is the compiling (and linking for incremental builds?). 

**Need to look into newer version - might be different.**


### [distcc](https://www.distcc.org/)

Distributed CPP build system


## Solutions to slow builds


## Other things to consider


### hard linking?

source code
`~/.pnpm/react-$version` (or something)

`node_modules/react` (hardlink from `<~/.pnpm/react-$version>`)

source code
`~/.cargo/registry###`

compiled stuff
```
.target/debug/$crate-fingerprint

.target/release/$crate-fingerprint
```

hardlinking probably helps with source code but not compiled code (compiled code is currently bespoke each time, so there won't be lots of copies of it). Cargo already stores its source code in a central place (like how pnpm does), so we won't win much by this.

### How can we save disk space?


### Incremental builds

There is a way to tell cargo to dynamically link crates


### Dealing with feature flags, dynamic linking and monomorphization


## List of questions

{

* How powerful is your system? 
  * CPU / MEM / SSD / NET
  * Write a small benchmark?
        * (web-based won't be able to know disk size or max ram)

} - Tejas & Christos

{

* Evaluate existing caches? (sccache doesn't work supposedly, but take a look at cachepot?)
    - [ ] There is a promenent rust dev that has "I'm starting a buildsystems company" on his twitter profile or something. Dig out who that is.
    - [ ] ...

} - David

{

* Hypothetical maximum speed
    * no diff
    * incremental
    * from scratch (clean build)

} - Christos

## Business model

open source client + open source server + pay for our compute

Who owns IP (later)

* client
* cache registry (smart server)
* cache CDN (costs - consumer pays or we swallow cost?)
* build servers (cost (github can give you some for free for OSS?))
* expand to other languages?