LIGeR

— Layered Interface GEneralisation pRotocol
A highly simplified drawing of the profile of a lion-tiger hybrid, not realistic, but how it could be imagined to look: with the stripes of a tiger and the mane of a lion. Black on white.
LIGeR logo
Click image to open full size

LIGeR is an (as of now in development) platform-agnostic standard for creating rudimentary visual interfaces for software with zero hard dependencies and an overall minimal size and complexity.

Be warned, I just started work on this project. As of now, this is still technically vapourware. Stay tuned for updates <3

The default LIGeR set of utilities is created in the C programming language, and by default, will be available for the C environment.

On top of that, a Kotlin port is planned, courtesy of a friend of mine. Even if that falls out, however, I will almost definitely see to it that LIGeR is available for the JVM environment.

The same as above applies to a Rust crate.

If the need materialises, other sets of bindings and ports might come at a later date.

Those ports and bindings might not be difficult to make, however!

LIGeR is designed as an intermediary between your software and its environment — whether it be at the level of your graphics compositor, or the text-only terminal that it's launched in.

More specifically, the LIGeR Core (the element linked to your program) only parses your layouts, receives commands from you and reports back information. It's conceptually a very thin layer. What lies "above" it is any number of renderers. The architecture of the LIGeR stack is explained in more detail in the ⛓ Architecture section.

The descriptions on these pages are high-level overviews and may be slightly out of date. The most accurate, if slightly technical, information, is always available in the ⛓ Documentation section.