Repolode
Tyrrrz

Tyrrrz/CliWrap

Biblioteca .NET para iniciar processos de linha de comando com configuração fluente, redirecionamento de stdin/stdout/stderr e cancelamento assíncrono.

Estrelas
5,010
Forks
285
Issues abertas
3
Último commit
anteontem

O que é?

CliWrap é uma biblioteca .NET que encapsula System.Diagnostics.Process em uma API fluente e imutável para executar ferramentas de linha de comando. Um comando é criado chamando Cli.Wrap com o caminho de um executável e, em seguida, configurando argumentos, diretório de trabalho, variáveis de ambiente e outras opções antes de chamar ExecuteAsync ou um dos métodos de execução de nível mais alto.

Os fluxos padrão de entrada, saída e erro podem ser conectados a arquivos, streams, arrays de bytes, strings, buffers StringBuilder, delegates ou outros comandos, e os comandos podem ser encadeados com operadores de pipe. Métodos auxiliares coletam a saída em buffers ou expõem o processo como um fluxo de eventos baseado em pull ou push para reagir à saída em tempo real.

A biblioteca oferece suporte ao cancelamento com encerramento forçado e sinais de interrupção graceful, e, por padrão, lança uma exceção quando o código de saída é diferente de zero. Não tem dependências externas e tem como alvo .NET Standard 2.0, .NET Core 3.0+ e .NET Framework 4.6.2+.

Recursos principais

  • 01Configuração fluente e imutável de comandos, incluindo argumentos, diretório de trabalho e variáveis de ambiente.
  • 02Redirecionamento flexível de stdin, stdout e stderr para arquivos, streams, strings, delegates ou outros comandos.
  • 03Execução com saída em buffer e fluxos de eventos baseados em pull ou push para processá-la.
  • 04API assíncrona com suporte a cancelamento forçado e graceful.
  • 05Por padrão, códigos de saída diferentes de zero lançam uma exceção; é possível desativar essa validação.
  • 06Sem dependências externas.

Casos de uso

  • Chamar ferramentas externas, como git, ffmpeg ou docker, em uma aplicação .NET.
  • Transmitir a saída de um processo em tempo real para logs ou para uma interface.
  • Encadear ferramentas de linha de comando usando entrada e saída redirecionadas.
  • Executar processos longos com timeouts e encerramento graceful.

Início rápido

  1. 1

    Instale o pacote NuGet CliWrap

    dotnet add package CliWrap
  2. 2

    Importe o namespace e chame Cli.Wrap(...) com o caminho do executável; em seguida, execute ExecuteAsync() no seu código C#

Antes de usar

  • O README exige que você concorde com termos de uso de caráter político sobre Rússia e Ucrânia antes de usar o projeto ou seu código-fonte.
  • O suporte às opções de política de recursos varia entre plataformas.
  • As opções de credenciais, exceto o nome de usuário, estão disponíveis somente no Windows.

Em coleções

Tópicos

#dotnet#csharp#cli#process#piping#async#cancellation#command-line#dotnet-core#dotnet-standard

Perguntas frequentes

O que é CliWrap?
Biblioteca .NET para iniciar processos de linha de comando com configuração fluente, redirecionamento de stdin/stdout/stderr e cancelamento assíncrono. CliWrap é uma biblioteca .NET que encapsula System.Diagnostics.Process em uma API fluente e imutável para executar ferramentas de linha de comando. Um comando é criado chamando Cli.Wrap com o caminho de um executável e, em seguida, configurando argumentos, diretório de trabalho, variáveis de ambiente e outras opções antes de chamar ExecuteAsync ou um dos métodos de execução de nível mais alto.
CliWrap é gratuito? Qual é a licença?
CliWrap é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
CliWrap ainda é mantido?
Manutenção ativa. O último commit de CliWrap foi em 4 de nov. de 2026.
Para que posso usar CliWrap?
Chamar ferramentas externas, como git, ffmpeg ou docker, em uma aplicação .NET. Transmitir a saída de um processo em tempo real para logs ou para uma interface. Encadear ferramentas de linha de comando usando entrada e saída redirecionadas. Executar processos longos com timeouts e encerramento graceful.
Como instalar CliWrap?
Instale o pacote NuGet CliWrap: dotnet add package CliWrap Importe o namespace e chame Cli.Wrap(...) com o caminho do executável; em seguida, execute ExecuteAsync() no seu código C#
Onde consigo CliWrap?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Tyrrrz/CliWrap

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

Projetos relacionados