mise vs asdf: Qual gerenciador de versões poliglota para CI?
O mise (antigo rtx) é uma versão mais rápida e baseada em Rust do asdf que mantém a compatibilidade com o .tool-versions e adiciona gerenciamento de env e de tarefas.
O asdf é o gerenciador de versões multilinguagem consolidado, guiado por plugins e pelo .tool-versions. O mise é uma alternativa baseada em Rust que lê os mesmos arquivos, roda muito mais rápido e adiciona recursos de variáveis de ambiente e task-runner.
| mise | asdf | |
|---|---|---|
| Implementação | Rust | Shell + plugins |
| Velocidade | Mais rápido | Mais lento (shims) |
| Compatibilidade de config | Lê .tool-versions | .tool-versions |
| Recursos extras | Variáveis de env, tarefas | Apenas versões |
| Ecossistema de plugins | Compatível com asdf + nativo | Grande, maduro |
No CI
O mise é mais rápido que o asdf e evita o overhead de shims, o que reduz o tempo de setup do toolchain, e ele pode reutilizar plugins e .tool-versions do asdf, então a migração tem baixo atrito. Ele também traz recursos de variáveis de env e de tarefas que podem substituir scripts extras. O asdf continua sendo a escolha madura e amplamente documentada com o maior catálogo de plugins. Ambos fixam cada linguagem em um único arquivo para um CI reproduzível.
Fixe e faça cache
Commite o .tool-versions para que o CI instale as versões locais exatas, e faça cache dos toolchains instalados. A instalação roda nos runners de CI; runners gerenciados mais rápidos encurtam o setup multilinguagem a frio.
O veredito
Quer setup mais rápido, recursos de env/tarefas e compatibilidade com o asdf: mise. Quer o padrão maduro e maximamente documentado: asdf. Ambos usam .tool-versions, então testar o mise é de baixo risco - commite o arquivo de pin para um CI reproduzível.