Thermite
00 / ignition

Iron oxide plus aluminium

Fe2O3 + 2Al Al2O3 + 2Fe

The reaction that consumes rust and pours molten iron

THERMITE

Hand it a .rs file, a cargo project, or the name of a public repository. It compiles on GitHub's own runners — in your account, on your quota, under GitHub's limits — and hands back a binary for any of eleven targets. Thermite has no application server: no backend, no database, no queue you are sharing. There is nothing here but a static file and your GitHub account.

11 targets stable, beta, nightly, or any pinned version live logs, straight from the runner everything swept after 24 hours your Actions minutes, your GitHub limits
How it works
01 / authorise

Connect GitHub

Your account does the work.

Thermite has no backend and therefore no credentials of its own. You give it a fine-grained token scoped to a single repository, it lives in this tab only, and it goes nowhere except api.github.com.

  • Administration Read & write — only to create your build repository, once.
  • Contents Read & write — write job files, read build logs.
  • Workflows Read & write — install the build workflow during setup.
  • Actions Read — watch runs. Thermite cannot cancel or re-run anything.
  • Metadata Read — GitHub requires it alongside the others.
Create one

Held in this tab's session storage and dropped when you close it. Nothing is written to disk unless you ask for it.

02 / toolchain

Rust version

Which compiler?

Channels track whatever is current on the day you pour. Pinned versions are installed with rustup on the runner, so anything Rust still publishes will work.

Or pin a release

Connect GitHub first — the toolchain list is the easy part.
03 / target

Compilation target

Where does it have to run?

Native targets are built on a runner of the same architecture. Cross targets are built with a cross linker and never executed here — test them on real hardware before you trust them.

Pick a toolchain first — it decides which targets are available.
04 / charge

Source

Charge the crucible.

Drop a .rs file
or click to browse · up to 512 KiB
Pick a target first — it changes what a valid submission looks like.
05 / seal

Encrypted pour — optional

Seal it, or don’t.

Your crucible is a public repository. By default your source sits in it as plaintext until cleanup removes it. Sealing keeps it as ciphertext instead — and seals the ingot and the build log too, because compiler errors quote your source.

This changes what is stored. It does not change what runs. The runner still decrypts your source to compile it, and your build scripts still execute with full privileges. Encryption is confidentiality, not a sandbox. Read the encryption chapter.

Encrypted pour
Default: plaintext
Add some source first.
06 / pour

Confirm

One commit, one run, one ingot.

Your files become a single commit in your crucible. That commit — not the branch, not the latest state — is what gets compiled, so pours submitted seconds apart never contaminate each other.

When should this pour be cleaned up?

Runs on your GitHub account, against your Actions usage and GitHub’s own limits. Thermite caps you at 12 pours an hour on top of that.

Add some source first.
— / mechanism

What actually happens

No magic, and one honest limitation.

Your repository
A public repo called thermite-crucible is created on your account and lined with two workflows. It holds nothing but throwaway jobs and is safe to delete at any time.
The commit
Each pour is one commit adding jobs/<ulid>/. The workflow checks out that exact SHA and refuses any commit that adds more than one job.
Live logs
GitHub's log endpoint redirects to a host that sends no CORS headers, so a browser can never read it. Instead the runner writes its own output to a branch every 2.5 seconds and this page reads that. Slightly slower, considerably more honest.
The download
Artifacts hit the same wall, so the binary is also published as a release asset — a plain URL that needs no token and outlives your session.
Cleanup
A scheduled workflow sweeps pours after 24 hours, and checks the Actions API first so a build that is still running is never touched.
What it costs
No one else’s quota — every build runs on your account, under GitHub’s Actions limits and policies, which are theirs to change. Public repositories are not billed per minute today, but that is not a promise of unlimited compute, and concurrency caps and fair-use rules still apply. Thermite adds its own cap of 12 pours an hour so a stuck loop cannot run away with it.
pour
commit
0s
Queued
the crucible
Waiting for the runner to pick this up…