GrailGUI is a prototype of a replacement for web programming (HTTP, HTML, CSS, JavaScript) and GUI programming. It includes a client graphical API, a browser implemented in C++ and OpenGL, a protocol to transmit metadata and data in binary, a language (XDL) to describe the binary data, and local storage to retain data on the client should that be necessary. Encrypted communications (equivalent of TLS) have not yet been implemented.
gcc-11 is not required, using gcc 10 will have support for everything in C++17 and 20 that we actually use (I'll probably test to see whether we can compile with gcc 9 as well, but I can confirm that 10 is fine)
Ninja is not needed. Our CMakeLists.txt doesn't force the use of Ninja, so the user can specify whatever build system they want CMake to generate (including makefiles)
Not sure what happened with the numbering of things in the intro. Looks like the outer list corrected itself, but the inner one didn't.
We include a .clang-format file to make sure that everything gets formatted correctly, so maybe worth mentioning using the clang-format tool.
The default gcc on 20.04 LTS is gcc 9.3, but gcc 10 is available with the package name gcc-10, so we don't need the gcc 11 instructions for 20.04
gcc-10
, so we don't need the gcc 11 instructions for 20.04