Repolode
medialab

medialab/xan

Ferramenta de linha de comando em Rust para pré-visualizar, filtrar, agregar, combinar e transformar arquivos CSV e TSV diretamente no terminal.

Alternativa open source a:Microsoft Excel

Estrelas
4,540
Forks
94
Issues abertas
127
Último commit
há 18 horas

O que é?

xan é uma ferramenta de linha de comando para processar arquivos CSV pelo terminal. Ela oferece um amplo conjunto de subcomandos combináveis para pré-visualizar, pesquisar, filtrar, fatiar, ordenar, remover duplicatas, agregar e combinar dados tabulares; esses comandos podem ser encadeados em pipelines.

Escrita em Rust e baseada em um parser CSV com SIMD, com alguns cálculos paralelizados entre threads, ela consegue processar arquivos de gigabytes a terabytes. Também inclui sua própria linguagem de expressões, adaptada a linhas CSV e usada por comandos como filter, map, transform, agg e groupby, além de converter dados de e para formatos como JSON, NDJSON, Excel e Parquet.

O projeto surgiu como um fork do xsv e foi amplamente reescrito pelo médialab da SciencesPo, com recursos voltados à coleta de dados da web e à análise em ciências sociais, incluindo lexicometria, utilitários para grafos e extração de dados de HTML. Também oferece visualizações no terminal, histogramas, gráficos e mapas de calor para exploração rápida.

Recursos principais

  • 01Pré-visualize, pesquise, filtre, fatie, ordene e remova duplicatas de arquivos CSV pelo terminal.
  • 02Agregue e agrupe dados com uma linguagem de expressões personalizada.
  • 03Combine, mescle, divida e reorganize tabelas com pivot e unpivot.
  • 04Converta entre CSV e formatos como JSON, NDJSON, Excel e Parquet.
  • 05Leia arquivos compactados com gzip e zstd e formatos comuns de bioinformática, como VCF, SAM e BED.
  • 06Gere histogramas, gráficos de dispersão e mapas de calor no terminal.

Casos de uso

  • Inspecionar ou filtrar rapidamente uma exportação CSV grande sem carregá-la em uma planilha.
  • Criar pipelines de shell reproduzíveis para limpar e agregar dados tabulares.
  • Calcular tabelas de frequência e estatísticas descritivas em conjuntos de dados de pesquisas ou coletas da web.
  • Converter dados entre CSV e formatos como JSON ou Excel em scripts.

Início rápido

  1. 1

    Instale o xan com Cargo

    cargo install xan --locked
  2. 2

    Baixe o corpus de exemplo

    curl -LO https://github.com/medialab/corpora/raw/master/polarisation/medias.csv
  3. 3

    Visualize o arquivo no terminal

    xan view medias.csv

Tópicos

Perguntas frequentes

O que é xan?
Ferramenta de linha de comando em Rust para pré-visualizar, filtrar, agregar, combinar e transformar arquivos CSV e TSV diretamente no terminal. xan é uma ferramenta de linha de comando para processar arquivos CSV pelo terminal. Ela oferece um amplo conjunto de subcomandos combináveis para pré-visualizar, pesquisar, filtrar, fatiar, ordenar, remover duplicatas, agregar e combinar dados tabulares; esses comandos podem ser encadeados em pipelines.
xan é gratuito? Qual é a licença?
xan é open source sob a licença Unlicense. Confira os termos da licença antes de usá-lo em produtos comerciais.
xan ainda é mantido?
Manutenção ativa. O último commit de xan foi em 20 de out. de 2026.
Para que posso usar xan?
Inspecionar ou filtrar rapidamente uma exportação CSV grande sem carregá-la em uma planilha. Criar pipelines de shell reproduzíveis para limpar e agregar dados tabulares. Calcular tabelas de frequência e estatísticas descritivas em conjuntos de dados de pesquisas ou coletas da web. Converter dados entre CSV e formatos como JSON ou Excel em scripts.
Como instalar xan?
Instale o xan com Cargo: cargo install xan --locked Baixe o corpus de exemplo: curl -LO https://github.com/medialab/corpora/raw/master/polarisation/medias.csv Visualize o arquivo no terminal: xan view medias.csv
Onde consigo xan?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/medialab/xan

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados