Components of the Lino framework

The Lino framework consists of about 30 repositories, which are currently hosted on GitHub under https://github.com/lino-framework.

General framework repositories

  • The lino package contains the core of the framework and includes the Standard Plugin Library, a plugin library with basic features like system users, notifications, comments, printing and others. These features are included in most real-world Lino applications.

  • The lino_xl package contains the Lino Extensions Library, a collection of plugins used by many Lino applications.

  • The getlino package contains the Lino installer.

  • The lino_book package contains the source code of what you are reading right now, plus a collection of demo projects and examples (see lino_book.projects), plus the big test suite for the Lino framework.

Lino applications

Here is a directory of all known Lino applications.

Some applications have the privilege of having their technical documentation in the Lino Book. This is because explaining a framework is difficult without examples, and because we thought that applications that are actually being used in reality are more interesting than a theoretic collection of demo projects.

Newer Lino applications have their own technical documentation, demo projects and technical specs:

  • Lino Amici is a contacts manager for families.

  • Lino Ciao is a meetings manager.

  • Lino Presto is an application developed for a service provider in Eupen. Group calendar, team management, monthly invoicings. No accounting.

  • Lino Pronto is an application developed for a provider with delivery notes and with accounting. Not yet uses in production.

  • Lino Welfare is a plugin library for Belgian Public Social Welfare Centres, currently used by two applications Chatelet and Eupen.

  • Some applications fell asleep before going to production: Lino Patrols, Lino Logos and Lino Sunto (the latter was the first Lino application developed by somebody else than the author).

Utilities maintained by the Lino team

Some packages that might be useful to non-Lino Python projects are not covered in the Lino Book because they are actually not at all related to Lino, except that Lino depends on them and that they are maintained by the Lino team:

  • atelier is a collection of utilities (subpackages projects, invlib and rstgen)

  • etgen uses ElementTree for generating HTML or XML.

  • commondata is an experimental project for storing and maintaining common data as Python code without any front end.

getlino

The getlino package is the Lino installer, a small Python script that installs Lino in different contexts.

See https://getlino.lino-framework.org

Alternative front ends

ExtJS 6 front end

A currently deprecated proof of concept for a Lino front end that uses Sencha's ExtJS 6 Javascript toolkit.

See https://github.com/lino-framework/extjs6

OpenUI5 front end

A currently deprecated proof of concept for a Lino front end that uses SAP's OpenUI toolkit.

See https://github.com/lino-framework/openui5

Overview diagram

digraph foo {

 { rank = same;
     # applications;
     noi;
     cosi;
     tera;
     avanti;
     voga;
     weleup;
     welcht;
     amici;
     ciao;
 }

 lino -> atelier;
 xl -> lino;
 noi -> xl;
 cosi -> xl;
 tera -> xl;
 avanti -> xl;
 voga -> xl;
 amici -> xl;
 ciao -> xl;
 weleup -> welfare;
 welcht -> welfare;

 book -> noi;
 book -> cosi;
 book -> voga;
 book -> tera;
 book -> avanti;
 # book -> weleup;
 # book -> welcht;

 welfare -> xl;

 getlino -> book;
 getlino -> amici;
 getlino -> ciao;
 getlino -> weleup;
 getlino -> welcht;

}