Where can my program run?

Programming guides

A host is the environment that runs your program. A text terminal, browser, and desktop preview do not all provide the same drawing, input, sound, or device features.

The Pliro desktop IDE is available for Windows 10/11 and supported Debian-based Linux systems (AMD64). Download and install the IDE. The table below describes where your programs run; exported Raspberry Pi apps do not require installing this AMD64 IDE package on the Pi.

Reading the platform names

A capability is something an environment can provide, such as drawing or key input. Support means it can actually carry out that operation. A backend is the part that creates or runs a program for a chosen target. Reserved means a target name is set aside; it does not mean that target is available yet. Processor labels such as ARM64 and AMD64 are explained in building applications.

Go and TypeScript are programming languages used to implement Pliro. You can write Pliro programs without learning them. React Native names the technology behind the phone preview player. A protocol is an agreed format for exchanging information; v1 means version 1. The preview can only show effects its protocol and player understand.

Technical Linux display names

  • X11 and Wayland are systems used to display application windows. XWayland lets an X11 application appear in a Wayland desktop. Wayland documentation.
  • DRM/KMS refers to Linux’s Direct Rendering Manager and Kernel Mode Setting: facilities for graphics devices and display settings. Pliro’s direct-display mode uses them to show graphics without a desktop window system. Linux display documentation.
  • evdev is a Linux interface for input events. Relative input reports a change, such as moving five units left. Absolute input reports a position, such as where a screen was touched. Multitouch means following several touches at once; calibration adjusts how device positions match the screen. The table’s direct-display mouse support does not imply touchscreen or multitouch support. Linux input documentation.

Host support table

Host or target Current capability behavior
Go reference interpreter Implements all currently registered canonical function semantics. Graphics, turtle, media, sprites, and GPIO are structured events; the selected host decides the visible or physical effect.
CLI pliro run Renders console output and input prompts. It intentionally does not draw scene, turtle, media, or sprite events. GPIO uses safe virtual state.
Desktop IDE live preview Renders console, prompts, keyboard state, logical primary-pointer presses, releases, and clicks, 2D/3D scenes and turtle graphics, project images, recorded/synthesized audio, retained sprites, HTML forms, and virtual GPIO inspection.
TypeScript browser runtime Implements all canonical operations and emits the matching portable events. A particular browser renderer may support only a subset of media or hardware effects.
Browser playground renderer Console, typed prompts, keyboard/pointer input, turtle, 2D/3D, synthesized audio and basic HTML forms. Project media/sprites require an asset-enabled host; physical GPIO is unavailable.
React Native preview player Console, typed prompts, pointer input, turtle and basic 2D. Protocol v1 has no project media, sprites, audio, 3D or GPIO transport. Complete forms in the IDE.
Native console Core operations, typed prompts and sequential terminal forms. No graphical form or scene.
Native host graphical mode Supported Windows and Linux hosts provide keyboard/pointer input, 2D/3D, fonts, turtle, project images, sprites, basic forms, PCM WAV and synthesized audio.
Explicit Linux AMD64/ARM64 Supports 2D/3D graphics, keyboard input, and primary mouse press/release/click events through X11/XWayland or direct DRM/KMS display with relative evdev mice. Does not provide GPIO.
Native Raspberry Pi ARM64/ARMv7 Supports the Linux graphical and primary mouse event capabilities plus physical GPIO. GPIO is also available in console mode and remains scoped to explicit Pi targets.
Experimental Linux RISC-V 64 Supports console programs only; graphical programs receive a target diagnostic.
Android ARM64 Target name is reserved but the native backend is not available yet.

Direct-display Linux mouse support covers relative evdev mice; absolute touchscreens, pen calibration, and multitouch are not implemented.

Native targets reject a used unsupported capability with a build diagnostic; they do not silently compile it to a no-op. Native audio supports bounded PCM WAV and synthesis. Other codecs may report a diagnostic. See music, forms, and display settings.

Syntax and values · Built-ins · Programming guides

Advanced application hosts

Pro development tools run in the desktop IDE and CLI. Advanced data/network APIs additionally run in supported native exports after explicit host permission; generated apps have no product-licence check. Public-playground execution is unavailable, and browser/phone hosts have no advanced adapter. Ordinary Core code from Pro editors remains portable.