Components of the Lino framework

Until 2021 we used GitHub (https://github.com/lino-framework) to host our source repositories. In 2021 we moved 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

Alternative front ends

See also About front ends.

React front end

See https://gitlab.com/lino-framework/react

ExtJS 6 front end

A 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 proof of concept for a Lino front end that uses SAP's OpenUI toolkit.

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

PyQt front end

A proof of concept for a Lino front end that uses the PyQt toolkit.

You can see it by saying pm qtclient in the project directory of any Lino site.

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.