# Tryton

Tryton is a three-tier high-level general purpose computer application platform on top of which is built an enterprise resource planning (ERP) business solution through a set of Tryton modules. The three-tier architecture consists of the Tryton client, the Tryton server and the database management system (mainly PostgreSQL).

## License

The platform, along with the official modules, are free software, licensed under the GPL-3.0-or-later license.

## Modules and functional coverage

The official modules provide a coverage of the following functional fields:
* Financial accounting
* Sales
* Inventory & Stock
* Analytic accounting
* CRM
* Purchasing
* Supply chain
* Manufacturing Resource Planning
* Shipping
* Project management
* Subscription management
* Third party integration
Full documentation of the modules and functionalities is available at the official documentation site.

## Technical features

The client and the server applications are written in Python, the client uses GTK+ as graphical toolkit. Both are available on Linux, OS X, and Windows. A web client also exists written in JavaScript using jQuery and Bootstrap and is named sao.
The kernel provides the technical foundations needed by most business applications. However it is not linked to any particular functional field hence constituting a general purpose framework:
* Data persistence: ensured by accessor objects called Models, they allow easy creation, migration and access to records.
* User Management: the kernel comes with the base features of user management: user groups, access rules by models and records, etc.
* Workflow Engine: allows users to activate a workflow on any business model.
* Report Engine: the report engine is based on relatorio that uses ODT files as templates and generate ODT or PDF reports.
* Internationalisation: Tryton is available in English, French, German, Spanish, Catalan, and Italian. New translations can be added directly from the client interface.
* Historical data: data historization may be enabled on any business model allowing for example to get the list of all the past value of the cost price of any product. It also allows users to dynamically access historized record at any time in the past: for instance the customer information on each open invoice will be the ones of the day the invoice was opened.
* Support for XML-RPC and JSON-RPC protocols.
* Database independence is allowed thanks to the python-sql library and is used for testing with the SQLite backend.
* Built-in automatic migration mechanism: it allows updating the underlying database scheme without any human manipulation. Migration is ensured from series to series (releases inside the same series do not require migration). This automation is possible because the migration process is taken into account and tested continually within the development.
* Advanced modularity: the modularity allows a layered approach of the business concepts along with flexibility, which speeds up custom developments.
Being a framework, Tryton can be used as a platform for the development of various other solutions than just business ERPs. A very prominent example is GNU Health, a free Health and Hospital Information System based on Tryton.

## Origin and history

Tryton's origin is a fork of the version 4.2 of TinyERP (which was later called OpenERP and now renamed Odoo). The first version was published in November 2008.

## Project management and governance

In contrast to their parent project and other open-source business software, the Tryton founders avoided creating a partner network, which tends to generate opposition and duality between the partners and the community of volunteers. They followed the PostgreSQL example where the project is driven by a federation of companies. As of August 2015, Tryton is supported by 17 of such companies, which are distributed globally as follows: France 3, Spain 3, Colombia 2, Germany, 2, Argentina 1, Australia 1, Belgium 1, Brazil 1, India 1, Mexico 1, Switzerland 1.
As of December 2012, the project is backed by Tryton, a Belgian private foundation pursuing a disinterested purpose. The foundation's missions are:
* Develop and support conferences, meetings and community activities
* Hold and administer the tryton.org infrastructure
* Organize the community of supporters
* Manage and promote the Tryton trademark
The release process is organised around series. A series is a set of releases with the same two first numbers (e.g. 1.0 or 1.2) that shares the same API and the same database scheme. A new series appears every six months and new versions in older release are introduced when bugfixes are available. The series are maintained for 1 year and every five series is a Long-term support of 5 years.

## Name

The name Tryton refers to Triton, a mythological Greek god (son of Poseidon, god of the sea, and Amphitrite, goddess of the sea) and Python, the implementation language.