Skip to content
Latchkey

Lefthook vs pre-commit: Gerenciadores de Hook Comparados

O Lefthook é um binário Go único e rápido que roda hooks em paralelo; o pre-commit é um framework Python com um grande registro de hooks prontos.

O Lefthook configura hooks em YAML, os roda em paralelo e é distribuído como um binário único sem dependências, o que o torna rápido e agnóstico de linguagem. O pre-commit, escrito em Python, gerencia ambientes de hook isolados e oferece um enorme ecossistema de hooks compartilháveis fixados por versão, o que é excelente para padronizar verificações entre repositórios. O Lefthook prioriza velocidade e simplicidade; o pre-commit prioriza um catálogo de hooks rico e reproduzível.

Lefthookpre-commit
RuntimeBinário Go únicoFramework Python
Ecossistema de hooksVocê define os comandosGrande registro compartilhado
ParalelismoEmbutidoLimitado
Isolamento de ambienteNãoAmbientes por hook
Melhor paraVelocidade, simplicidadeHooks compartilhados e fixados

No CI

O pre-commit brilha quando você quer um conjunto curado e fixado por versão de hooks da comunidade reaproveitados entre muitos repositórios, e tem um modo de CI limpo. O Lefthook é mais rápido e sem dependências, ideal quando você roda majoritariamente seus próprios comandos e quer paralelismo. Ambos também devem rodar no CI para que as verificações sejam impostas além dos hooks locais.

Acelere

Faça cache dos ambientes de hook (pre-commit) ou das dependências para que as verificações de CI comecem aquecidas. As verificações rodam em runners; runners gerenciados mais rápidos encurtam a execução de hook e lint.

O veredito

Querer um grande registro de hooks compartilháveis e fixados por versão, padronizados entre repositórios: pre-commit. Querer um binário rápido e sem dependências rodando seus próprios comandos em paralelo: Lefthook. Times que valorizam um catálogo de hooks compartilhado tendem ao pre-commit; os focados em velocidade tendem ao Lefthook.

Guias relacionados