9.4s buildsno toolchain

Rust on ESP32, instantly in your browser.

esp32.rs compiles embedded Rust on a remote build farm and flashes it to the board on your desk over Web Serial. No toolchain, no udev rules, no forty-minute setup guide — write no_std firmware, hit Flash, watch the LED blink.


real hardware

0

Toolchains to install

9.4s

Median build, warm cache

6

ESP32 targets, C3 to S3

4,812

Community firmwares shared


What esp32.rs does
01

Zero-install toolchain

The full espup stack — rustc, the Xtensa and RISC-V targets, precompiled HAL crates — lives on the build farm. Your browser sends source and gets back a binary. Nothing is ever installed on your machine.

02

One-click Web Serial flashing

Plug the board in, click Connect, click Flash. esp32.rs speaks the ESP bootloader protocol directly from the browser over Web Serial — 921,600 baud, progress bar and all.

03

Docker simulation

No board in your bag? Run the same binary in a Dockerized QEMU simulator with virtual GPIO and UART. The serial monitor can’t tell the difference — and neither will your firmware.

04

Community sharing

Every playground is a URL. Publish it with a board tag and a readme, and anyone can clone it straight into their own editor — dependencies, pin map and all.

The code

no_std, no ceremony

The classic blink, in embedded Rust. This exact file builds on the farm in seconds and flashes to an ESP32-C3 over Web Serial — no account required.

src/main.rsesp32-c3 · no_std
#![no_std]
#![no_main]

use esp_hal::{delay::Delay, gpio::{Level, Output}, prelude::*};

#[entry]
fn main() -> ! {
    // the whole HAL, precompiled on the build farm
    let peripherals = esp_hal::init(esp_hal::Config::default());
    let mut led = Output::new(peripherals.GPIO8, Level::Low);
    let delay = Delay::new();

    loop {
        led.toggle();
        delay.delay_millis(500);
    }
}
“Forty students, zero installs. We were blinking LEDs eleven minutes into the workshop.”
— M. Okafor, embedded Rust instructor

The toolchain is the browser.

Write no_std Rust, build it on the farm, flash it over Web Serial — all from this tab.

Open Playgroundno signupno install