Oxlint v1.0 Stable
INFO
Este post do blog foi publicado originalmente no site da VoidZero.
Em resumo: chegou a primeira versão estável do Oxlint! Com cerca de 50–100× mais rápido que o ESLint, mais de 500 regras no estilo ESLint e adoção em grandes empresas como Shopify, Airbnb e Mercedes-Benz, vale experimentar. Comece agora.
O Oxlint é um linter em Rust para JavaScript e TypeScript, pensado para velocidade e adoção simples. Desde o primeiro anúncio em dezembro de 2023 o projeto cresceu muito e agora lança a versão estável 1.0. Além do release estável, anunciamos um mantenedor em tempo integral dedicado ao Oxlint, Cameron, e um núcleo de equipe em expansão para manter e evoluir o linter.
Impacto no mundo real
Valorizamos o desempenho do Oxlint e o impacto em grandes bases — inclusive redução de custo de CI.
Agradecemos aos mais de 5 200 projetos dependentes precoces e a empresas e projetos como:
- Shopify, onde a equipe de plataforma frontend usa Oxlint no admin da Shopify.
- Airbnb, com análise multi-arquivo oxc/no-barrel-file e import/no-cycle em mais de 126 000 arquivos — cerca de 7 s na CI. A implementação ESLint equivalente não cabia no tempo limite.
- Mercedes-Benz, onde a migração do ESLint para Oxlint cortou ~71% do tempo de lint; em alguns projetos até 97%.
- Grandes projetos open source — de runtimes como Bun a frameworks como Preact.
No maior repositório que encontramos, o Oxlint produziu:
Finished in 22.5s on 264925 files with 101 rules using 10 threads.Com base em casos reais em X e Bluesky, o Oxlint processa da ordem de 10 000 arquivos por segundo, conforme o número de threads.
Comece agora
O Oxlint serve para quem quer lint sem passar horas configurando ferramentas. Sem config já dá para achar problemas:
É só rodar — config não é obrigatório.
$ npx oxlint@latest$ pnpm dlx oxlint@latest$ yarn dlx oxlint@latest$ bunx oxlint@latest$ deno run npm:oxlint@latestDá para começar sem nada configurado; em projetos grandes ou específicos ajuda usar .oxlintrc.json. O formato segue o flat config do ESLint v8, o que torna a migração familiar. Cada arquivo é lintado pela config mais próxima; dá para usar overrides com globs e estender configs compartilhadas para uniformizar times.
Para quem já usa ESLint, oxlint-migrate ajuda a portar um flat config existente para o Oxlint. Além disso, eslint-plugin-oxlint desliga regras duplicadas do ESLint quando os dois rodam juntos. Recomendamos oxlint && eslint para combinar a velocidade do Oxlint com o alcance do ESLint.
Veja o guia de instalação.
Versionamento
Diferente de bibliotecas com código de runtime, um linter só muda os diagnósticos que devolve. O Oxlint segue versionamento semântico:
- Patch: apenas correções de bugs.
- Minor: mais regras e diagnósticos, sem exigir mudança obrigatória de configuração.
- Major: mudanças na CLI ou no formato de config, podendo exigir migração.
Atenção: releases minor ainda podem quebrar a CI se novas regras revelarem problemas antes ocultos. Detalhes no guia de versionamento.
Destaques
Cobertura ampla de regras
Mais de 500 regras de várias fontes:
- Conjunto completo do ESLint, inclusive regras TypeScript do
typescript-eslint(exceto as que exigem checagem de tipos). - Regras de plugins populares:
eslint-plugin-unicorn,eslint-plugin-jsdoc,eslint-plugin-react,eslint-plugin-react-hooks,eslint-plugin-jest,eslint-plugin-import. - Regras próprias do Oxlint, como bad comparison sequence, const comparisons e only used in recursion.
Configuração flexível
Via .oxlintrc.json:
- Configs aninhadas por diretório
- Overrides por tipo de arquivo ou caminho
- Extensão de configs compartilhadas para o time
Integração com editores
- VS Code
- IntelliJ IDEA e WebStorm
- Zed
- LSP para outros editores
Diagnósticos claros
Mensagens acionáveis — não só o que está errado, mas visualização e como corrigir.
Oxlint no terminal com relatório detalhado
Benchmark
No nosso benchmark, o Oxlint fica na faixa de 50–100× mais rápido que o ESLint com setup equivalente.
| Ferramenta | Tempo |
|---|---|
| oxlint (multi thread) | 615,3 ms |
| oxlint (single thread) | 1,840 s |
| eslint | 33,481 s |
Roteiro
O Oxlint 1.0 é só o começo. Com estabilidade, ainda há recursos importantes:
Regras customizadas — em breve suporte a plugins em JavaScript para regras no ecossistema do Oxlint.
Otimizações de performance — parsing e análise ainda mais rápidos.
Configuração fina por glob — estilo ESLint v9.
Agradecimentos
O Oxlint 1.0 é fruto do esforço de mais de 200 contribuidores. Obrigado por issues, pedidos de recurso e patches.
Menção especial:
- @branchseer pelo runtime de análise multi-arquivo.
- @camc314, @mysteryven e @shulaoda por regras complexas, testes e melhorias contínuas.
- @camchenry pela configuração aninhada.
- @DonIsaac por configuração, documentação e site, e pela representação do Oxc na SquiggleConf 2024.
- @leaysgur pelo parser RegExp e plugin JSDoc.
- @Sysix pelo
eslint-plugin-oxlinte contribuições ao language server e à extensão do VS Code. - @u9g e @rzvxa pela análise do grafo de fluxo de controle.
Comunidade
Queremos o seu feedback sobre o Oxlint.
- Discord: servidor da comunidade
- GitHub: Discussões
- Issues: bugs e ideias no tracker
O feedback molda a evolução do Oxlint.
Experimente
Comece pelo guia de instalação ou saiba mais sobre o projeto Oxc.

