Iron oxide plus aluminium
Fe2O3 + 2Al ↓ Al2O3 + 2Fe
The reaction that consumes rust and pours molten iron
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.
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.
AdministrationRead & write — only to create your build repository, once.ContentsRead & write — write job files, read build logs.WorkflowsRead & write — install the build workflow during setup.ActionsRead — watch runs. Thermite cannot cancel or re-run anything.MetadataRead — GitHub requires it alongside the others.
Held in this tab's session storage and dropped when you close it. Nothing is written to disk unless you ask for it.
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
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.
Source
Charge the crucible.
Nothing is uploaded. The runner clones the repository itself at build time, so a large project costs one commit instead of a 12 MiB archive. Public repositories only — the fetch on the runner is anonymous.
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.
Source encryption
Protects your project while it is stored in the public crucible. GitHub needs the private half during compilation, so it lives in your repository secrets.
Artifact encryption
The finished binary and the build log are published encrypted and opened only in your browser. Only you ever hold this private key.
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.
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.