Skip to main content
Send data to and from any device running anywhere, big or small: cloud servers, tablets, or embedded systems. The core peer-to-peer technology is open source and built on open standards, so you’re never locked in.

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 -Os on 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.
You’ll find working firmware for every variant above, along with a desktop CLI and browser (WebAssembly) client, in iroh-esp32-examples. For a complete example, see iroh-smart-fan: a PSRAM ESP32 that reads a temperature sensor and drives a fan over irpc, with controls available from a terminal or browser.

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 Rust std 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.