- Ferramenta substituta do
pre-commit criada para aumentar a velocidade e a eficiência do gerenciamento de hooks do Git, mantendo a compatibilidade com configurações e hooks existentes
- Fornecida como um único executável baseado em Rust e, por meio de uma arquitetura de processamento paralelo, reduz o tempo de instalação e execução dos hooks
- Já adotada por projetos importantes como CPython, Apache Airflow, FastAPI e Home Assistant
- Suporta gerenciamento integrado de toolchains multilíngues como Python, Node.js, Go, Rust e Ruby
- A integração com
uv melhora a velocidade de criação de ambientes virtuais Python e instalação de dependências
- Suporte nativo a ambientes de workspace (monorepo), com configuração possível para cada subprojeto
- Oferece comandos de CLI aprimorados como
prek run, prek list e prek auto-update
- Com as opções
--directory e --last-commit, é possível verificar apenas diretórios específicos ou o commit mais recente
- A opção
--cooldown-days oferece um recurso de mitigação contra ataques à cadeia de suprimentos
- Alguns hooks comuns vêm embutidos nativamente em Rust, com suporte a execução offline e sem configuração
- Licença MIT
- Desenvolvido com inspiração no projeto
uv da Astral
5 comentários
Tenho uma dúvida para os desenvolvedores: por que, ultimamente, a maioria dos projetos parece ser desenvolvida em Rust em vez de Golang? O principal motivo é a presença ou ausência de GC?
Esse projeto provavelmente não está em um nível em que o GC se torne um problema. Entre a “maioria dos projetos hoje em dia”, na prática, muitas vezes a adoção de uma linguagem de programação é mais uma questão de preferência do que propriamente dos pontos fortes ou limitações de uma linguagem específica. Ainda assim, se me perguntarem qual é a vantagem comparativa que Rust tem sobre Go como linguagem de programação de uso geral, eu diria que é o nível de abstração que Rust oferece e a capacidade de detectar vários erros em tempo de compilação. Claro, Go também tem vantagens em relação a Rust, como programação assíncrona mais simples, tempo de compilação rápido e sintaxe concisa.
Bem, é só um palpite, mas acho que pode ser porque a barreira de entrada do Rust desapareceu.
A maior dificuldade era você programar e a compilação continuar falhando, mas agora a IA faz isso no lugar.
No Rust, uma grande parte dos erros é capturada na compilação, então tive a sensação de que até a falha na compilação acaba ajudando a IA a seguir pelo caminho certo.
Achei isso bem legal.