Fjarr is opinionated: a small, well-tested matrix beats a broad, flaky
one. Targets outside the primary column are adapters, not core concerns.
| Status | Notes |
|---|
| Ubuntu 24.04 LTS x86-64 | Primary (ADR-0002) | GStreamer 1.24, PipeWire 1.0, libei 1.2 — everything the specs need from distro packages |
| Ubuntu 22.04 | Not targeted | GStreamer 1.20 lacks vah264enc, unusable libei; upgrade the robot instead |
| Debian 13 / other distros | Untested, likely works | Same component versions; no CI |
| NVIDIA Jetson (Ubuntu-based) | Planned adapter | drever heritage: nvv4l2h264enc encoder adapter; post-M6, open question |
| Status | Notes |
|---|
| Intel VA-API (iHD) | Primary | vah264enc via GStreamer va; Gen9+ iGPU incl. Meteor Lake NUCs; LIBVA_DRIVER_NAME=iHD |
| Software fallback | Dev only | openh264enc/vp8enc for machines without a GPU — never the product path (docs/16) |
x264enc | Forbidden in shipped artifacts | GPL — ADR-0011; doctor enforces absence |
NVIDIA (nvh264enc/Jetson) | Planned adapter | with the Jetson work |
Both X11 and Wayland are evaluated head-to-head before committing
(docs/07, ADR-0006):
| Concern | X11 (Xorg) | Wayland |
|---|
| Capture | ximagesrc (+XDamage/XFixes) | PipeWire + ScreenCast portal |
| Input | XTest | libei / RemoteDesktop portal |
| Input (below compositor) | uinput | uinput |
| Unattended after reboot | straightforward | portal permission model is the hard part |
| Ubuntu 24.04 default | available | default session |
| Status | Notes |
|---|
| Chromium-family ≥ 120 (Chrome, Edge) | Primary | H.264 + VP8 decode, full WebRTC feature set |
| Firefox ESR+ | Supported | verify H.264 availability in CI (platform-dependent) |
| Safari 17+ | Best-effort | test at M3; known WebRTC quirks |
| Mobile browsers | Not targeted for M≤6 | dashboard responsive layouts still apply |
| Path | Requirement |
|---|
| Signaling | outbound 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) |
| Assume | carrier-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.