I have a small Yocto Linux-based embedded device with a main application - a kind of scientific measurement system - written in C++.

I want to add a WebUI to it which shows status / errors, a few graphs, and some basic controls (like restart). That is a relatively new task for me.

What do you think are good / creative ways of making such a web UI?

C++ feels like the wrong tool here.

What I am thinking of is something like:

  • storing some data in LMDB or SQLite
  • storing status and controls from the main process (written in C++) in a mmap’ed shared memory file
  • writing the UI in a lightweight script language which can read the file, and generate the output. Python is likely too heavy, and to difficult to build. What is possible is micropython, possibly also Rust. What I’d like most would be to use a program written in Guile, which has nice facilities to server web requests.

What ideas do you have? Which extra points might I want to consider?