Skip to content
Latchkey

Ruff vs Black: qual formatador de Python para o CI?

O formatador do Ruff é rápido e busca uma saída compatível com o Black, e ele também linta no mesmo binário.

O Black é o formatador de código Python amplamente adotado e opinativo. O Ruff (da Astral) inclui um formatador projetado para ser altamente compatível com o Black, ao mesmo tempo em que roda muito mais rápido e se combina com o linter do Ruff em uma única ferramenta.

BlackRuff (format)
ImplementaçãoPythonRust
VelocidadeMais lentoMuito rápido
Compatibilidade com o Blackn/a (a referência)Alta por design
LintingNão (só formatação)Sim (lint + format)
AdoçãoOnipresenteEm crescimento rápido

No CI

Um passo de format --check roda a cada push; o Ruff o torna visivelmente mais rápido e pode substituir o Black mais o seu linter com um único binário. O formatador do Ruff mira uma saída compatível com o Black, então, para a maioria das bases de código, o diff de formatação ao trocar é mínimo. O Black continua sendo o formatador de referência, com a mais ampla familiaridade de ecossistema e suporte de editores.

Esforço de migração

Rode o ruff format em todo o repositório em um único commit para absorver quaisquer pequenos diffs, e então imponha-o no CI. Como a saída é compatível com o Black por design, o churn costuma ser baixo. Mantenha o Black apenas se uma ferramenta ou fluxo específico o exigir explicitamente.

O veredito

Quer formatação rápida (mais linting) em uma única ferramenta com saída compatível com o Black: Ruff. Quer o formatador de referência com máxima familiaridade de ecossistema: Black. Trocar gera pouco churn - reformate em um único commit.

Guias relacionados