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.

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, sound, retained sprites, 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 Projects console, typed prompts, keyboard, logical primary-pointer presses, releases, and clicks, turtle, and 2D/3D scenes; it currently does not resolve project media, retained sprites, or GPIO effects.
React Native preview player Projects console, typed prompts, logical primary-pointer presses, releases, and clicks, turtle, and basic 2D scene commands; project media, retained sprites, and GPIO are not projected yet. Protocol-v1 phone preview does not support 3D and shows a notice directing users to the IDE or a native build.
Native console Supports application exit, core functions, repeated lists, random integers, waits, and all four typed prompt functions.
Native host graphical mode Currently available when the host platform is Windows; adds keyboard polling, primary-pointer presses, releases, and clicks, 2D/3D graphics, fonts, turtle graphics, packaged images, and retained sprites.
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. playSound is not yet supported by
the native build target.

Syntax and values · Built-ins · Programming guides