kwc 0.1.0

Rust port of FreeBSD's wc(1) utility, published as kwc to avoid clashing with system wc
kwc-0.1.0 is not a library.

kwc

kwc é um porte direto, em Rust, do utilitário wc(1) do FreeBSD, desenvolvido com auxílio de IA.

O objetivo deste projeto não é reinventar o wc com uma interface nova, dependências extras ou uma camada de abstração moderna. A proposta aqui é mais específica: preservar a forma de operação do programa original do FreeBSD e reimplementá-la em Rust, com um binário próprio, pequeno e fácil de distribuir.

O nome kwc foi escolhido de propósito. Em vez de disputar espaço com o wc já presente na grande maioria dos sistemas operacionais, este projeto adota um nome distinto para coexistir com segurança durante testes, empacotamento e instalação.

Feito com IA, mas orientado pelo original

Este projeto foi implementado com apoio de IA, mas isso não muda a sua proposta técnica.

A referência primária continua sendo o wc(1) do FreeBSD, originalmente localizado em usr.bin/wc/wc.c. A IA foi usada como ferramenta de desenvolvimento para acelerar a transposição para Rust; o alvo do trabalho permanece o mesmo: reproduzir a interface, a semântica e o comportamento observável do programa original.

Por que isto pode ser chamado de porte direto

Este repositório segue a estrutura e o comportamento do wc(1) do FreeBSD, originalmente localizado em usr.bin/wc/wc.c.

Na prática, isso significa preservar os pontos que definem o utilitário:

  • mesmas opções centrais: -l, -w, -c e -L
  • mesmo comportamento padrão quando nenhuma flag é informada: linhas, palavras e bytes
  • leitura tanto de arquivos quanto de stdin
  • soma total ao processar múltiplos arquivos
  • alinhamento da saída em colunas de largura compatível com a tradição BSD
  • foco em comportamento previsível, sem "reinterpretar" o programa original

Em outras palavras: kwc não é apenas uma ferramenta inspirada em wc; ele foi escrito para reproduzir em Rust a interface e a semântica operacional essenciais do utilitário do FreeBSD.

O que o programa faz

kwc conta:

  • linhas
  • palavras
  • bytes
  • comprimento da maior linha

Compilação

cargo build --release

O binário gerado será kwc, evitando conflito com o wc já instalado no sistema.

Uso

kwc arquivo.txt
kwc -l arquivo.txt
kwc -w -c arquivo.txt
kwc -L arquivo.txt
type arquivo.txt | kwc

Uso resumido:

kwc [-c] [-Llw] [file ...]

Manual

Uma man page em estilo BSD foi adicionada em man/kwc.1.

Em sistemas Unix-like com man, ela pode ser aberta diretamente do repositório com:

man -l man/kwc.1

Posicionamento do projeto

Se você quer um clone estilizado de wc, com parsing de argumentos reimaginado ou extensões fora da tradição Unix, este não é o objetivo deste repositório.

Se você quer um porte enxuto e fiel do wc(1) do FreeBSD para Rust, com nome próprio para não conflitar com o ecossistema já existente, é exatamente isso que kwc entrega.