Components of the Lino framework

The Lino framework consists of about 30 repositories.

Warning: Until 2021 they were hosted on GitHub (https://github.com/lino-framework). In 2021 we started to move over to GitLab (https://gitlab.com/lino-framework). Check Moving from GitHub to GitLab when in doubt whether your clone is up to date.

Overview diagram

digraph foo {

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

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

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

 welfare -> xl;

}

General framework repositories

The lino package

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.

Project homepage: https://gitlab.com/lino-framework/lino

Lino Extensions Library

The lino_xl package contains the Lino Extensions Library.

Project homepage: https://github.com/lino-framework/xl

The Lino Book

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 main test suite for the Lino framework.

Project homepage: https://gitlab.com/lino-framework/book

Lino applications

See also List of known Lino applications.

There are two classes of Lino applications, which differ by how their documentation and test suites are organized.

privileged applications

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

stand-alone applications

Lino applications that have their own developer documentation, demo projects and technical specs.

List of the privileged applications:

List of known stand-alone applications:

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:

  • getlino is the Lino installer.

  • atelier is a minimalist "development framework", including a project management a suite of invoke commands and a set of Sphinx extensions.

  • rstgen is a library to generate reSTructuredText snippets.

  • etgen is used for generating HTML or XML via ElementTree.

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

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