Operating Systems
iroh supports all major operating systems.Hardware
iroh is regularly tested on a wide range of hardware, from servers to microcontrollers.
For hardware you don’t see here, or to integrate your custom hardware into our testing frameworks on every iroh release, contact us.
Microcontrollers
iroh can run as a full QUIC endpoint on microcontrollers, using the same endpoint IDs, tickets, and protocols as it would on a server. What a device can do mostly comes down to its available RAM and flash:- RAM. With PSRAM, a device has room for the relay client and pkarr address lookup. That means you can connect to it from anywhere, including from a browser via WebAssembly.
- Without PSRAM (~512 KiB internal SRAM), the relay client and pkarr address lookup won’t fit. You can still connect on the local network using a long ticket that includes the device’s IP address, or discover it by endpoint ID with mDNS. Browsers can’t connect this way because they don’t support mDNS or direct UDP.
- Flash. Devices with less than 8 MiB of flash need our reduced-dependency
build of iroh. Common 4 MiB development boards fit with a little size tuning
(
opt-level = "z",panic = "immediate-abort", and-Oson the ESP-IDF side), with no custom partition table required.
ESP32
The RISC-V variants (ESP32-C*, ESP32-P*) build with stock Rust. Xtensa
(ESP32, ESP32-S3) needs the
esp Rust
toolchain.
The ESP32-P4 has no radio of its own. WiFi comes from an ESP32-C6 companion
over ESP-Hosted.RP2350: Pico 2 and Presto
iroh also runs on the RP2350, found in the Raspberry Pi Pico 2 and the Pimoroni Presto (RP2350B, RM2 radio, 8 MiB PSRAM). Relay and address lookup are enabled, so you can connect to these boards from anywhere. These chips don’t yet have an upstream Ruststd target, so we built one. It
uses nightly Rust with a custom Cortex-M33 target, the Pico SDK for startup, USB,
and the radio, FreeRTOS for threads, newlib, and lwIP for networking. iroh builds
on top without modification.
To use a microcontroller in production, contact us for licensing, support, and
access to the Pico/Presto examples.
Network Transports
If there is a transport you need that is not listed, contact us.