oxidecomputer / oxidecomputer/omicron

Consider breaking up big Nexus 🔨

Open
#1,154 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

build
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

As @jgallagher helpfully showed during our weekly Rust study, cargo build --timings generates a nice report of build times.

From this report, there are some particularly bad offenders - among them, Nexus take 60+ seconds to compile.

By breaking Nexus into smaller crates, we could:

  1. Get better incremental compilation results - @cbiffle mentioned this was handy for Hubris folks
  2. Get better visibility in "what takes so long build". This could help us make further optimizations, and keep developer productivity high.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running cargo build --timings and inspect the Nexus build report to identify the compile-time offenders. The issue names no files or tests, so first map the Nexus crate and its dependencies, then determine suitable crate boundaries. Done means Nexus is split into smaller crates with improved incremental-build visibility and results.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.