Skip to content

Supported Platforms

Fjarr is opinionated: a small, well-tested matrix beats a broad, flaky one. Targets outside the primary column are adapters, not core concerns.

StatusNotes
Ubuntu 24.04 LTS x86-64Primary (ADR-0002)GStreamer 1.24, PipeWire 1.0, libei 1.2 — everything the specs need from distro packages
Ubuntu 22.04Not targetedGStreamer 1.20 lacks vah264enc, unusable libei; upgrade the robot instead
Debian 13 / other distrosUntested, likely worksSame component versions; no CI
NVIDIA Jetson (Ubuntu-based)Planned adapterdrever heritage: nvv4l2h264enc encoder adapter; post-M6, open question
StatusNotes
Intel VA-API (iHD)Primaryvah264enc via GStreamer va; Gen9+ iGPU incl. Meteor Lake NUCs; LIBVA_DRIVER_NAME=iHD
Software fallbackDev onlyopenh264enc/vp8enc for machines without a GPU — never the product path (docs/16)
x264encForbidden in shipped artifactsGPL — ADR-0011; doctor enforces absence
NVIDIA (nvh264enc/Jetson)Planned adapterwith the Jetson work

Robot — display server (remote desktop capability)

Section titled “Robot — display server (remote desktop capability)”

Both X11 and Wayland are evaluated head-to-head before committing (docs/07, ADR-0006):

ConcernX11 (Xorg)Wayland
Captureximagesrc (+XDamage/XFixes)PipeWire + ScreenCast portal
InputXTestlibei / RemoteDesktop portal
Input (below compositor)uinputuinput
Unattended after rebootstraightforwardportal permission model is the hard part
Ubuntu 24.04 defaultavailabledefault session
StatusNotes
Chromium-family ≥ 120 (Chrome, Edge)PrimaryH.264 + VP8 decode, full WebRTC feature set
Firefox ESR+Supportedverify H.264 availability in CI (platform-dependent)
Safari 17+Best-efforttest at M3; known WebRTC quirks
Mobile browsersNot targeted for M≤6dashboard responsive layouts still apply
PathRequirement
Signalingoutbound WSS (TCP 443-friendly) from robot and browser to fjarr-server
Media (best)UDP outbound; STUN reachable
Media (fallback)TURN over UDP 3478; TURNS/TCP 443 fallback planned M5 (open question)
Assumecarrier-grade NAT on LTE robots ⇒ relay-only is a normal case, not an error (docs/16)

Linux x86-64/arm64 container (distro-independent, debian:bookworm-slim base). Customer backend stack: any — integration is HTTP/JSON per ADR-0015.

React ≥ 19 for @fjarr/react; @fjarr/core is framework-agnostic ES2022 (any bundler; Vite-tested). Node ≥ 22 for tooling.