Uma técnica de busca mais rápida que Ripgrep, grep, ag, Git grep, ucg, pt e sift (2016)
(blog.burntsushi.net)Resumo: introdução à nova ferramenta de busca em linha de comando ripgrep
ripgrepé uma nova ferramenta de busca em linha de comando que combina a usabilidade do The Silver Searcher com o desempenho do GNU grep.- Fornece binários para Linux, Mac e Windows e foi escrita em Rust.
- Destaca-se em desempenho e precisão tanto na busca em arquivos únicos quanto em diretórios de grande porte.
- Tem excelente suporte a Unicode e, em geral, é mais rápida do que ferramentas que usam memory map.
Introdução ao ripgrep
Vantagens
- É mais rápido do que outras ferramentas de busca e não pesquisa arquivos ignorados por
.gitignore. - Oferece recursos para pesquisar apenas tipos específicos de arquivo ou excluí-los.
- Suporta muitos recursos do
grepe sempre oferece suporte a Unicode. - Pode usar opcionalmente o mecanismo de expressões regulares PCRE2.
- Suporta diversos encodings de texto e busca em arquivos compactados.
- Suporta filtros arbitrários de pré-processamento de entrada.
Opiniões contrárias
- Não segue o padrão POSIX e é menos universal do que o
grep. - Alguns recursos ou bugs específicos presentes em outras ferramentas podem não existir no ripgrep.
- Em certos casos extremos de desempenho, o ripgrep pode ser mais lento do que outras ferramentas.
Instalação
- O nome do binário do
ripgrepérge ele pode ser instalado em várias plataformas. - Há métodos de instalação para Homebrew, Archlinux e programadores Rust.
- Também é possível compilá-lo diretamente do código-fonte.
Tour rápido
- O uso do
ripgrepna linha de comando não é muito diferente de outras ferramentas semelhantes. - Ele oferece suporte automático a saída no terminal, cores, exibição de números de linha etc.
- É possível pesquisar usando várias opções e padrões de busca.
Estrutura do ripgrep
Contexto
- Explica as diferenças e semelhanças entre
grepe as ferramentas descendentes deack. - O
ripgrepcombina a capacidade dogrepde pesquisar arquivos grandes com os padrões “inteligentes” de busca doack.
Preparação para a busca de arquivos
- Usar um iterador de diretórios rápido e filtragem de caminhos de arquivos é importante.
- Aplicar rapidamente as regras de arquivos
.gitignoreafeta o desempenho.
Busca
- Um mecanismo rápido de expressões regulares e otimizações para literais são importantes.
- Em vez de pesquisar linha por linha ou o arquivo inteiro, ele pesquisa grandes buffers de uma só vez.
Saída
- Os resultados da busca são gravados em um buffer de memória e serializados para
stdoutna saída.
Metodologia
Visão geral
- Foca no problema que o usuário está tentando resolver e busca benchmarks justos.
- Faz benchmark de várias ferramentas e compara levando em conta as diferenças de comportamento padrão de cada uma.
Opinião do GN⁺
O ponto mais importante deste texto é que ele explica em detalhes quais vantagens o ripgrep tem em comparação com as ferramentas de busca existentes. Em especial, desempenho rápido, suporte a Unicode e suporte a vários formatos de arquivo e encodings podem ser motivos atraentes para os usuários. Este texto é interessante porque ajuda a entender como uma nova ferramenta difere das existentes e como essas diferenças podem impactar usuários reais.
1 comentários
Comentários do Hacker News