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
iroh also runs on RP2350-based devices. With WiFi and sufficient PSRAM, relay and address lookup are enabled, so you can connect to these boards from anywhere. For a technical walkthrough of the Ruststd port, WiFi, PSRAM, display support,
and a working iroh endpoint, read iroh on
RP2350.
RP2350 doesn’t yet have an upstream Rust std 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.
Contact us for production support.
Network Transports
If there is a transport you need that is not listed, contact us.