Repolode
Tyrrrz

Tyrrrz/CliWrap

Библиотека .NET для запуска процессов командной строки с гибкой настройкой, перенаправлением stdin/stdout/stderr и асинхронной отменой.

Звёзды
5,010
Форки
286
Открытые issues
3
Последний коммит
позавчера

Что это?

CliWrap — библиотека .NET, которая предоставляет для System.Diagnostics.Process удобный неизменяемый API с цепочками вызовов и предназначена для запуска инструментов командной строки. Команду создают вызовом Cli.Wrap с путём к исполняемому файлу, затем задают аргументы, рабочую директорию, переменные окружения и другие параметры, после чего вызывают ExecuteAsync или один из методов более высокого уровня.

Стандартные потоки ввода, вывода и ошибок можно подключать к файлам, потокам, массивам байтов, строкам, буферам StringBuilder, делегатам или другим командам; команды также можно объединять операторами конвейера. Вспомогательные методы собирают буферизованный вывод или предоставляют процесс как поток событий с pull- или push-моделью, чтобы обрабатывать вывод в реальном времени.

Библиотека поддерживает отмену с принудительным завершением процесса и корректными сигналами прерывания; по умолчанию при ненулевом коде завершения выбрасывается исключение. Внешних зависимостей нет; поддерживаются .NET Standard 2.0, .NET Core 3.0+ и .NET Framework 4.6.2+.

Ключевые возможности

  • 01Гибкая неизменяемая настройка команд с помощью цепочек вызовов: аргументы, рабочая директория и переменные окружения.
  • 02Гибкое перенаправление stdin, stdout и stderr в файлы, потоки, строки, делегаты или другие команды.
  • 03Буферизованное выполнение и потоки событий с pull- или push-моделью для обработки вывода.
  • 04Асинхронный API с поддержкой принудительной и корректной отмены.
  • 05По умолчанию ненулевой код завершения приводит к исключению; проверку можно отключить.
  • 06Без внешних зависимостей.

Сценарии использования

  • Вызов внешних инструментов, например git, ffmpeg или docker, из приложения .NET.
  • Передача вывода процесса в реальном времени в логи или интерфейс пользователя.
  • Объединение инструментов командной строки в цепочки с перенаправлением ввода и вывода.
  • Запуск долгих процессов с тайм-аутами и корректным завершением.

Быстрый старт

  1. 1

    Установите NuGet-пакет CliWrap

    dotnet add package CliWrap
  2. 2

    Импортируйте пространство имён и вызовите Cli.Wrap(...), указав путь к исполняемому файлу, а затем ExecuteAsync() в коде на C#

Что важно знать

  • Перед использованием проекта или его исходного кода README требует согласиться с политическими условиями использования, касающимися России и Украины.
  • Поддержка параметров политики ресурсов зависит от платформы.
  • Параметры учётных данных, кроме имени пользователя, доступны только в Windows.

В подборках

Темы

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

Частые вопросы

Что такое CliWrap?
Библиотека .NET для запуска процессов командной строки с гибкой настройкой, перенаправлением stdin/stdout/stderr и асинхронной отменой. CliWrap — библиотека .NET, которая предоставляет для System.Diagnostics.Process удобный неизменяемый API с цепочками вызовов и предназначена для запуска инструментов командной строки. Команду создают вызовом Cli.Wrap с путём к исполняемому файлу, затем задают аргументы, рабочую директорию, переменные окружения и другие параметры, после чего вызывают ExecuteAsync или один из методов более высокого уровня.
CliWrap можно использовать бесплатно? Какая у него лицензия?
CliWrap распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
CliWrap всё ещё поддерживается?
Активно поддерживается. Последний коммит в CliWrap — 4 нояб. 2026 г..
Для чего можно использовать CliWrap?
Вызов внешних инструментов, например git, ffmpeg или docker, из приложения .NET. Передача вывода процесса в реальном времени в логи или интерфейс пользователя. Объединение инструментов командной строки в цепочки с перенаправлением ввода и вывода. Запуск долгих процессов с тайм-аутами и корректным завершением.
Как установить CliWrap?
Установите NuGet-пакет CliWrap: dotnet add package CliWrap Импортируйте пространство имён и вызовите Cli.Wrap(...), указав путь к исполняемому файлу, а затем ExecuteAsync() в коде на C#
Где скачать CliWrap?
Исходный код и инструкции по установке — на GitHub: https://github.com/Tyrrrz/CliWrap

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Кроссплатформенный драйвер графических планшетов с открытым исходным кодом, работающий в пользовательском режиме на Windows, Linux и macOS и настраиваемый через GUI.

4,2 тыс.+21 за неделю572C#LGPL-3.0Обновлён 17 часов назад

Бесплатный редактор PDF с открытым исходным кодом для Windows и встроенным движком PDF 2.0: просмотр, аннотации, OCR, объединение, разделение, подпись и многое другое.

4,3 тыс.+88 за неделю343C#GPL-3.0Активно поддерживаетсяОбновлён 4 дня назад