Repolode
Tyrrrz

Tyrrrz/CliWrap

Una biblioteca .NET para iniciar procesos de línea de comandos con configuración fluida, conexión de stdin/stdout/stderr y cancelación asíncrona.

Estrellas
5,010
Forks
285
Issues abiertos
3
Último commit
hace 3 días

¿Qué es?

CliWrap es una biblioteca .NET que envuelve System.Diagnostics.Process en una API fluida e inmutable para ejecutar herramientas de línea de comandos. Para crear un comando, se llama a Cli.Wrap con la ruta del ejecutable y, antes de llamar a ExecuteAsync o a uno de los métodos de ejecución de más alto nivel, se configuran los argumentos, el directorio de trabajo, las variables de entorno y otras opciones.

Los flujos de entrada, salida y error estándar se pueden conectar a archivos, flujos, arrays de bytes, cadenas, búferes StringBuilder, delegados u otros comandos; además, los comandos se pueden encadenar con operadores de tubería. Los métodos auxiliares recopilan la salida en búferes o exponen el proceso como un flujo de eventos basado en extracción o inserción para reaccionar a la salida en tiempo real.

La biblioteca admite la cancelación mediante señales de interrupción forzada y gradual, y, de forma predeterminada, lanza una excepción si el código de salida no es cero. No tiene dependencias externas y es compatible con .NET Standard 2.0, .NET Core 3.0+ y .NET Framework 4.6.2+.

Funciones clave

  • 01Configuración fluida e inmutable de comandos, con argumentos, directorio de trabajo y variables de entorno.
  • 02Conexión flexible de stdin, stdout y stderr a archivos, flujos, cadenas, delegados u otros comandos.
  • 03Ejecución con búferes y flujos de eventos basados en extracción o inserción para procesar la salida.
  • 04API asíncrona con compatibilidad para la cancelación forzada y gradual.
  • 05De forma predeterminada, los códigos de salida distintos de cero lanzan una excepción; la validación se puede desactivar.
  • 06Sin dependencias externas.

Casos de uso

  • Llamar a herramientas externas, como git, ffmpeg o docker, desde una aplicación .NET.
  • Transmitir la salida de un proceso en tiempo real a registros o a una interfaz de usuario.
  • Encadenar herramientas de línea de comandos mediante tuberías de entrada y salida.
  • Ejecutar procesos largos con tiempos de espera y apagado gradual.

Inicio rápido

  1. 1

    Instala el paquete NuGet CliWrap

    dotnet add package CliWrap
  2. 2

    Importa el espacio de nombres y llama a Cli.Wrap(...) con la ruta del ejecutable; después, ejecuta ExecuteAsync() en tu código C#

Antes de usarlo

  • El README exige aceptar unas condiciones de uso de carácter político sobre Rusia y Ucrania antes de utilizar el proyecto o su código fuente.
  • La compatibilidad con las opciones de política de recursos varía según la plataforma.
  • Las opciones de credenciales, aparte del nombre de usuario, solo están disponibles en Windows.

En colecciones

Temas

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

Preguntas frecuentes

¿Qué es CliWrap?
Una biblioteca .NET para iniciar procesos de línea de comandos con configuración fluida, conexión de stdin/stdout/stderr y cancelación asíncrona. CliWrap es una biblioteca .NET que envuelve System.Diagnostics.Process en una API fluida e inmutable para ejecutar herramientas de línea de comandos. Para crear un comando, se llama a Cli.Wrap con la ruta del ejecutable y, antes de llamar a ExecuteAsync o a uno de los métodos de ejecución de más alto nivel, se configuran los argumentos, el directorio de trabajo, las variables de entorno y otras opciones.
¿CliWrap es gratuito? ¿Qué licencia tiene?
CliWrap es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿CliWrap sigue mantenido?
Mantenimiento activo. El último commit de CliWrap fue el 4 nov 2026.
¿Para qué puedo usar CliWrap?
Llamar a herramientas externas, como git, ffmpeg o docker, desde una aplicación .NET. Transmitir la salida de un proceso en tiempo real a registros o a una interfaz de usuario. Encadenar herramientas de línea de comandos mediante tuberías de entrada y salida. Ejecutar procesos largos con tiempos de espera y apagado gradual.
¿Cómo se instala CliWrap?
Instala el paquete NuGet CliWrap: dotnet add package CliWrap Importa el espacio de nombres y llama a Cli.Wrap(...) con la ruta del ejecutable; después, ejecuta ExecuteAsync() en tu código C#
¿Dónde consigo CliWrap?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Tyrrrz/CliWrap

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados