# Tryton

Tryton é uma plataforma de aplicação de propósito geral, construída em três camadas, sobre a qual é construído um sistema de gestão empresarial por meio de um conjunto de módulos. A arquitetura em três camadas consiste no cliente Tryton, no servidor Tryton e em um sistema de gerenciamento de bancos de dados (destacadamente PostgreSQL).

## Licença

A plataforma, assim como os módulos oficiais, são software livre, licenciados de acordo com GPLv3.

## Módulos e funcionalidades

Os módulos oficiais abrangem as seguintes funcionalidades:
* Contabilidade
* Faturamento
* Vendas
* Compras
* Contabilidade analítica
* Inventário
* Produção
* Gerenciamento de projetos
* Gerenciamento de leads e oportunidades de venda

## Características Técnicas

O cliente e o servidor são desenvolvidos em Python. O cliente utiliza GTK+ como biblioteca gráfica. Tanto o cliente como o servidor estão disponíveis em Linux, OS X, e Windows. Uma versão standalone, que inclui cliente e servidor, existe e é chamada de Neso.
O núcleo do sistema provê os fundamentos técnicos necessários à maior parte das aplicações de negócios. Entretanto, o Tryton não está adstrito a nenhum campo de funcionalidades particular. Constitui, portanto, uma plataforma de propósito geral.
* Persistência de dados: garantida por objetos assessores chamados Models, permite a fácil criação, migração e acesso aos registros.
* Gerenciamento de usuários: o núcleo possui as funcionalidades básicas para gerenciamento, tais como grupos, regras de acesso por modelos e por registros.
* Workflow Engine: permite a criação de fluxos para qualquer modelo de negócios.
* Relatórios: a geração de relatórios de baseia na biblioteca relatório, que se utiliza de arquivos ODT como modelos para gerar relatórios ODT ou PDF.
* Internacionalização: Tryton está disponível em vários idiomas. Novas traduções podem ser adicionadas diretamente a partir da interface do cliente ou de um servidor de tradução.
* Histórico: o histórico de dados pode ser habilitado para qualquer modelo de negócios o que permite, por exemplo, obter uma lista de todos os preços passados de um determinado produto.
* Suporte a protocolos DAV: WebDAV, CalDAV, e CardDAV. Isso permite o gerenciamento direto de documentos e a sincronização de calendários e contatos.
* Suporte aos protocolos XML-RPC e JSON-RPC.
* A independência de bancos de dados é obtida por meio da biblioteca python-sql e é usada para testes com o backend SQLite.
* Mecanismo de migração embutido: permite a atualização do banco de dados sem qualquer interferência humana. A migração é garantida de versão em versão (liberações menores dentro da mesma versão não requerem migração). Essa automação é possível porque o processo de migração é considerado e testado continuamente no processo de desenvolvimento.
* Modularidade avançada: a modularidade permite uma abordagem progressiva dos conceitos de negócios, o que agiliza o processo de desenvolvimento.
Como se trata de uma plataforma, o Tryton pode ser usado para o desenvolvimento de quaisquer outras soluções, não se restringindo a ERPs. Um exemplo muito conhecido é o GNU Health, um sistema de gerenciamento de saúde e hospitalar baseado no Tryton.

## Origem e história

O Tryton se originou como um fork da versão 4.2 do TinyERP (que depois foi renomeado para OpenERP e, por fim, para Odoo). A primeira versão foi publicada em novembro de 2008

## Gerenciamento do projeto e governança

Em contraste com o projeto inicial e outras soluções abertas de negócio, os fundadores do Tryton evitaram a criação de uma rede de parceiros, por temerem a geração de um conflito entre os parceiros e a comunidade de voluntários. Foi seguido o exemplo do PostgreSQL example, conduzido por uma federação de empresas. Em agosto de 2015, Tryton é apoiado por 17 empresas: Françe 3, Espanha 3, Colômbia 2, Alemanha 2, Argentina 1, Austrália 1, Bélgica 1, Brasil 1,Índia 1, México 1, Suíça 1.
Desde dezembro de 2012, o projeto é apoiado pela fundação sem fins lucrativos Tryton, sediada na Bélgica. Os objetivos da fundação são:
* Organizar e apoiar conferências, encontros e atividades da comunidade
* Manter e administrar a estrutura do sítio principal em tryton.org
* Organizar a comunidade de apoiadores
* Gerenciar e promover a marca Tryton
O processo de liberação é feito em séries. Uma série é composta por um conjunto de versões com os dois primeiros números iguais (e.g. 1.0 ou 1.2) que compartilham a mesma API e a mesma estrutura de banco de dados. Uma nova série é liberada a cada seis meses, e versões corretivas são mantidas para séries antigas.

## Nome

O nome Tryton se refere ao deus grego Tritão (filho de Posídon e Anfitrite) e a Python, a linguagem de implementação.