Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
52 lines (31 sloc) 1.3 KB


ALFI is a query language for graphical user interfaces.

ALFI works in a similar way to SQL but instead of talking to a database you talk to an ALFI client (or ALFI browser). The ALFI browser will convert the ALFI queries into graphical elements (i.e. widgets) and render them on the screen.

An ALFI query will tell the client to either insert, delete or update an element. ALFI is stateless so a typical use-case would be to have a regular web server serving ALFI queries as responses from regular HTTP requests (like GET, POST, etc).

The biggest strength of ALFI is that it requires very little technical skill to get started. If you know basic SQL you can easily write ALFI too. Writing an ALFI application is much simpler than writing an application using HTML/JavaScript/CSS.

NAVI is a proof of concept client/browser for ALFI. It takes ALFI queries and renders widgets in OpenGL. It is currently very much under development.

Building / Installing

You need to have the glfw3 libraries installed in order to build NAVI from soure. How you install those depends on your distribution of choice.


$ make


$ make install

And that's it.


To parse an alfi file:

$ alfi < example.alfi

To start navi:

$ navi


You can’t perform that action at this time.