πŸ“ˆ GH Trending Explorer 🎲 Surprise me

← all repos

indexable-inc / ra-jit

git clone https://github.com/indexable-inc/ra-jit.git

Rust compiler daemon on rust-analyzer: fast incremental cargo builds and live edits to running programs. Try: nix run github:indexable-inc/ra-jit

+146
stars, 24h Β· #78
+146
stars, 7 days Β· #366
+146
stars, 30 days Β· #1,645
146
β˜… total Β· +146% this week
4
forks Β· 9 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageRust
LicenseApache-2.0
Created2026-10-19 (today)
Last pushtoday
Watchers0
OwnerOrganization

GitHub topics

Links

README excerpt
ra-jit
Edit Rust. See it change in milliseconds, in the program that is already running.
 [code] 
That opens a Game of Life window you can edit while it runs (live on macOS Apple silicon).
 For release news: Watch β†’ Custom β†’ Releases on GitHub. 
## What you get
- **Live edits.** Save a file and the running program has the new code about a millisecond
 later. Its state stays. (docs/live.md)
- **Fast builds.** After the first build, an edit rebuilds only the functions you changed.
 No `rustc`, no waiting.
- **Same cargo.** `cargo ra-jit build|run|test|check` in any project.
## How fast
Live edit to running code, Game of Life demo (median of 20 edits, one 96-core Linux machine):
| Edit | incremental `cargo build` | ra-jit live | |
|---|---:|---:|---:|
| One function | 169 ms | 7 ms | **24x** |
| One function, 300 new functions added | 282 ms | 60 ms | 4.7x |
Edit, then build, on real projects at pinned commits. Each cell is incremental `cargo build` β†’ `cargo ra-jit build`, both warm, same linker, median of 5 edits. Linux x86-64, AWS c8a.metal-24xl, bare metal, pinned with taskset (AMD EPYC 9R45, 16 of its 96 cores, 188 GiB), ra-jit `6a7d245e47` on 2026-10-20.
| Project | Edit a function | Edit a widely used function | Change a signature | Nothing changed |
|---|---:|---:|---:|---:|
| ripgrep 15.1.0 | 447 ms β†’ **90 ms** (5.0x) | 713 ms β†’ **50 ms** (14x) | 556 ms β†’ **86 ms** (6.5x) | 382 ms β†’ **28 ms** (14x) |
| fd 10.3.0 | 433 ms β†’ **99 ms** (4.4x) | 403 ms β†’ **86 ms** (4.7x) | 651 ms β†’ **122 ms** (5.3x) | 381 ms β†’ **31 ms** (12x) |
| bat 0.26.0 | 428 ms β†’ **60 ms** (7.1x) | 667 ms β†’ **54 ms** (12x) | 951 ms β†’ **67 ms** (14x) | 58 ms β†’ **26 ms** (2.2x) |
| hyperfine 1.19.0 | 315 ms β†’ **92 ms** (3.4x) | 349 ms β†’ **98 ms** (3.6x) | 352 ms β†’ **140 ms** (2.5x) | 298 ms β†’ **30 ms** (9.9x) |
| just 1.43.0 | 656 ms β†’ **48 ms** (14x) | 687 ms β†’ **52 ms** (13x) | 664 ms β†’ **76 ms** (8.7x) | 41 ms β†’ **24 ms** (1.7x) |
| axum 0.8.6 | 350 ms β†’ **57 ms** (6.1x) | 798 ms β†’ **52 ms** (15x) | | 71 ms β†’ **26 ms** (2.7x) |
| nushell 0.108.0 | 1.44 s β†’ **325 ms** (4.4x) | 4.75 s β†’ **221 ms** (22x) | 4.84 s β†’ **288 ms** (17x) | 179 ms β†’ **43 ms** (4.2x) |
Measured by hand with `harness/bench.py`; the `bench-readme` workflow re-runs it on the dedicated benchmark machine. Cold builds, the spread of every number, the LLVM tier and how fast the built programs run: docs/benchmarks.md (raw JSON).
Not measured yet: workspaces of a million lines or more, and test suites
(#benchmarks).
## Try it on your project
 [code] 
No nix? `cargo +1.99.0 install --locked ra-jit`, or put the binaries from a
release on your PATH. Then use Rust
1.99.0 with its source:
`rustup toolchain install 1.99.0 -c rust-src && rustup override set 1.99.0`.
### Use it as your normal `cargo build`
 [code] 
From then on plain `cargo build`, `run`, `test` and `check` in any project go through ra-jit.
`ra-jit disable` puts your cargo config back.
### Live edits
Add the crate and poll once per frame:
 [code] 
 [