Repolode
tach-org

tach-org/tach

Ferramenta Python escrita em Rust que visualiza e aplica regras para dependências entre módulos e interfaces públicas em uma base de código.

Estrelas
2,862
Forks
98
Issues abertas
56
Último commit
há 9 dias

O que é?

Tach ajuda projetos Python a preservar os limites entre módulos. Você declara quais módulos podem depender de quais outros, e a ferramenta verifica se os imports estão de acordo com essas declarações, sinalizando os que atravessam limites indevidos. Ela também pode restringir chamadas entre módulos à interface pública declarada por cada módulo e detectar ciclos no grafo de dependências.

A ferramenta foi projetada para arquiteturas de monólito modular e pode ser adotada aos poucos, permitindo que as equipes marquem apenas os pacotes que querem acompanhar. A configuração é interativa por meio de `tach init`, e `tach check` retorna um código diferente de zero quando há violações, facilitando a execução no CI ou como hook de pre-commit.

Tach também pode renderizar o grafo de dependências como visualização web com `tach show --web` ou como arquivo GraphViz DOT local. Já `tach report` lista as dependências e os usos de um caminho especificado.

Recursos principais

  • 01Verifica os imports de acordo com as dependências entre módulos declaradas
  • 02Restringe chamadas entre módulos às interfaces públicas
  • 03Detecta ciclos no grafo de dependências
  • 04Permite adoção incremental, marcando apenas os módulos selecionados
  • 05Visualiza as dependências em um grafo web ou em formato GraphViz DOT
  • 06Integra-se ao CI e a hooks de pre-commit, retornando um código diferente de zero quando há violações

Casos de uso

  • Aplicar limites em camadas ou módulos em um monólito Python de grande porte
  • Evitar imports indesejados entre pacotes em um monorepo Python
  • Introduzir gradualmente regras de arquitetura em uma base de código existente
  • Analisar a estrutura de dependências de um projeto por meio de um grafo gerado

Início rápido

  1. 1

    Instale o Tach pelo PyPI

    pip install tach
  2. 2

    Execute a configuração interativa para definir os limites entre módulos

    tach init
  3. 3

    Aplique os limites configurados a partir da raiz do projeto

    tach check

Antes de usar

  • Só oferece suporte a bases de código Python.
  • Aplica os limites estaticamente e exige que as dependências entre módulos sejam declaradas manualmente em tach.toml.

Em coleções

Tópicos

Perguntas frequentes

O que é tach?
Ferramenta Python escrita em Rust que visualiza e aplica regras para dependências entre módulos e interfaces públicas em uma base de código. Tach ajuda projetos Python a preservar os limites entre módulos. Você declara quais módulos podem depender de quais outros, e a ferramenta verifica se os imports estão de acordo com essas declarações, sinalizando os que atravessam limites indevidos. Ela também pode restringir chamadas entre módulos à interface pública declarada por cada módulo e detectar ciclos no grafo de dependências.
tach é gratuito? Qual é a licença?
tach é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
tach ainda é mantido?
Manutenção ativa. O último commit de tach foi em 29 de out. de 2026.
Para que posso usar tach?
Aplicar limites em camadas ou módulos em um monólito Python de grande porte Evitar imports indesejados entre pacotes em um monorepo Python Introduzir gradualmente regras de arquitetura em uma base de código existente Analisar a estrutura de dependências de um projeto por meio de um grafo gerado
Como instalar tach?
Instale o Tach pelo PyPI: pip install tach Execute a configuração interativa para definir os limites entre módulos: tach init Aplique os limites configurados a partir da raiz do projeto: tach check
Onde consigo tach?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/tach-org/tach

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados