A lightweight Flutter Engine embedder for Raspberry Pi and Linux embedded systems that runs without X11 or Wayland.
Flutter-pi is a lightweight Flutter Engine embedder that allows developers to run Flutter applications on Raspberry Pi and other Linux embedded systems without needing a desktop environment like X11 or Wayland. It solves the problem of deploying Flutter apps to embedded devices by providing a minimal, performant runtime that leverages hardware graphics acceleration.
Embedded developers, IoT engineers, and makers building Flutter applications for Raspberry Pi or other Linux-based embedded systems, especially those creating kiosks, digital signage, or custom touchscreen interfaces.
Developers choose flutter-pi because it offers a streamlined, headless Flutter runtime optimized for embedded hardware, with support for plugins, hardware acceleration, and a growing ecosystem of tools—making it the go‑choice for running Flutter on resource‑constrained devices without desktop overhead.
A light-weight Flutter Engine Embedder for Linux Embedded that runs without X11 or Wayland.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs Flutter apps without X11 or Wayland, booting directly into the command line to minimize overhead for kiosk and IoT use cases, as highlighted in the project description.
Uses kernel-modesetting (KMS) and direct rendering infrastructure (DRI) to achieve smooth 50-60fps performance on supported hardware like Raspberry Pi 4, per the performance section.
Supports a range of platforms including Raspberry Pi 2/3/4/Zero 2 and other Linux systems with ARMv7, ARMv8, x86, or x86-64 CPUs and 3D acceleration, as listed in the README.
Includes built-in plugins for video playback via GStreamer and audio via audioplayers, enabling key embedded features without extra setup, detailed in the gstreamer and audioplayers sections.
Offers flutterpi_tool to simplify building and deploying apps, reducing manual steps compared to the old method, as mentioned in the NEWS and building instructions.
Requires compiling from source, installing multiple dependencies, and configuring the Raspberry Pi (e.g., switching to console mode, GPU memory settings), which can be error-prone and time-consuming.
The README admits that while most Flutter apps can run, plugins with platform-specific code must be built manually, adding overhead and limiting plug-and-play functionality.
Necessitates adding the user to the render group or using sudo for GPU access, which the README warns is a potential security hazard due to privilege escalation vulnerabilities.
Relies on a custom userspace touchscreen driver to mitigate kernel bugs that cause poor polling rates (25Hz default), indicating inherent platform limitations and extra setup for optimal responsiveness.