awesome-repositories.com
Blog
MCP
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
sindresorhus avatar

sindresorhus/execa

0
View on GitHub↗
7,517 estrellas·258 forks·JavaScript·MIT·8 vistas

Execa

Execa is a promise-based process execution library that serves as a wrapper for the Node.js child process module. It functions as a shell command runner and subprocess management tool, simplifying the execution of external commands and binaries.

The library distinguishes itself through automatic argument escaping to prevent shell injection and the use of abort signals for graceful process termination. It also provides an inter-process communication wrapper for exchanging structured JSON data and messages between parent and child processes.

Its capabilities cover a broad range of process I/O management, including interleaved output capture, binary-aware stream handling, and the ability to pipe, redirect, or transform standard input and output. It further provides monitoring tools for retrieving execution metadata and capturing enriched error objects that include exit codes and duration.

Features

  • Subprocess Management - Routes the output of one subprocess into the input of another using linear chains or multiple destinations.
  • Promise-Based Flow Control - Wraps Node.js child process modules to provide asynchronous control flow and detailed error objects.
  • CLI Process Controls - Cancels running processes using an abort signal to allow the child process to clean up before exiting.
  • Command Argument Parsers - Handles escaping of arguments containing spaces or special characters to prevent injection.
  • Command Line IO Handlers - Provides a toolkit for piping, redirecting, and transforming standard input and output streams from external commands.
  • Command Line Tooling - Provides the foundational capabilities for building developer tools that execute local binaries and capture interleaved output.
  • Output Redirection - Routes standard output and error to pipes, files, the parent terminal, or multiple targets simultaneously.
  • Process Lifecycle Managers - Returns a subprocess instance immediately upon spawning to provide access to process IDs and runtime properties.
  • Real-Time Output Streaming - Iterates over output lines as they are produced or converts a subprocess into a duplex stream.
  • Shell Command Execution - Runs shell commands and external binaries from Node.js with promise-based results and automatic argument escaping.
  • Shell Command Runners - Provides an interface for executing system-level shell commands with built-in argument escaping for security.
  • File-Based Redirection - Writes a command's standard output directly to a file by overwriting or appending content.
  • Process Output Iteration - Processes the standard output and error of a running command line by line as data is produced.
  • I/O Redirections - Redirects standard input and output to files, strings, or web streams via splitting or transformation functions.
  • Interleaved Output Capture - Combines standard output and error streams into a single chronological sequence to preserve message ordering.
  • Process IO Pipelines - Provides advanced streaming, filtering, and redirection of standard I/O between multiple subprocesses or files.
  • Process Termination Signals - Integrates the Web API AbortController to cancel running subprocesses and trigger graceful cleanup routines.
  • Process Execution Wrappers - Provides a promise-based wrapper for the Node.js child_process module to simplify the execution of external commands and binaries.
  • String Escapers - Automatically quotes and escapes shell arguments to prevent command injection and ensure literal string interpretation.
  • Standard Input Processing - Feeds data into a command's standard input using strings, files, or web streams.
  • Command Injection Prevention - Prevents shell injection vulnerabilities by treating input as literal text and automatically escaping arguments.
  • Inter-Process Communication - Implements mechanisms for exchanging structured JSON data and messages between a parent Node.js process and its subprocesses.
  • Interleaved Stream Capture - Merges standard output and error into a single stream to preserve the chronological order of messages.
  • Binary Stream Chunking - Iterates over subprocess output as arbitrary binary chunks to prevent data corruption from character encoding.
  • Binary Standard Input - Passes binary data to a subprocess using buffers or files to handle input containing null bytes.
  • Command Execution - Supports executing external commands synchronously by blocking the event loop until completion.
  • Stream Output Transformation - Modifies output lines via a generator function to rewrite, filter, or expand data in real time.
  • Command String Parsers - Splits a command string into an array of arguments for easier programmatic execution.
  • Local Binary Execution - Searches for and runs executable binaries located in local dependency folders or specified directories.
  • Subprocess Message Exchange - Implements the sending and receiving of messages between parent and subprocess using async iterables.
  • Execution Environment Configurations - Sets the working directory, environment variables, and binary preferences for a specific command execution.
  • Communication Channels - Establishes a dedicated message bus between parent and child processes for exchanging structured JSON data.
  • Binary Stream Handling - Provides raw buffer access to subprocess output to prevent data corruption from character encoding.
  • Output Line Splitting - Splits the standard output of a command into an array or async iterable for line-by-line processing.
  • Process Signal Forwarding - Forces subprocesses to exit cleanly when they intercept signals or the parent process terminates abruptly.
  • Shebang-Based Execution - Detects and prepends the correct runtime executable based on the script file header for cross-platform execution.
  • IO Stream Transformers - Uses async generators to filter or modify input and output data streams in real time.
  • Error Contextualization - Provides enriched error objects containing command, duration, exit code, and full output for improved debugging.
  • Subprocess Error Classification - Captures detailed error objects from external commands to distinguish between timeouts, cancellations, and execution failures.
  • Binary Output Capture - Captures subprocess output as raw byte arrays to preserve non-text data and avoid encoding issues.
  • Execution Metadata - Retrieves detailed execution metadata, including the original command string and total duration.
  • Shell and Scripting - Cross-platform child process execution.
  • General Utilities - Improved child process execution.
  • Shell and Execution - Cross-platform implementation of child process execution.
  • Works with AVA - Listed in the “Works with AVA” section of the Awesome Ava awesome list.

Historial de estrellas

Gráfico del historial de estrellas de sindresorhus/execaGráfico del historial de estrellas de sindresorhus/execa

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Preguntas frecuentes

¿Qué hace sindresorhus/execa?

Execa is a promise-based process execution library that serves as a wrapper for the Node.js child process module. It functions as a shell command runner and subprocess management tool, simplifying the execution of external commands and binaries.

¿Cuáles son las características principales de sindresorhus/execa?

Las características principales de sindresorhus/execa son: Subprocess Management, Promise-Based Flow Control, CLI Process Controls, Command Argument Parsers, Command Line IO Handlers, Command Line Tooling, Output Redirection, Process Lifecycle Managers.

¿Qué alternativas de código abierto existen para sindresorhus/execa?

Las alternativas de código abierto para sindresorhus/execa incluyen: shelljs/shelljs — ShellJS is a Node.js shell command library that provides a portable Unix-like utility suite for cross-platform system… gam-team/gam — GAM is a command-line tool for administering Google Workspace and Cloud Identity. It translates command-line arguments… elves/elvish — Elvish is a shell that combines interactive command-line use with a structured scripting language, designed to make… rstacruz/cheatsheets — This project is a comprehensive collection of web development reference guides and technical cheat sheets. It provides… oils-for-unix/oils — Oils is a Unix shell interpreter and scripting language runtime that combines a modern shell language with POSIX and… kilo-org/kilocode — Kilocode is an autonomous engineering platform designed to orchestrate AI agents for complex software development…

Alternativas open-source a Execa

Proyectos open-source similares, clasificados según cuántas características comparten con Execa.
  • shelljs/shelljsAvatar de shelljs

    shelljs/shelljs

    14,402Ver en GitHub↗

    ShellJS is a Node.js shell command library that provides a portable Unix-like utility suite for cross-platform system automation. It serves as a cross-platform filesystem API and a process wrapper for spawning and controlling external system subprocesses. The project translates Unix shell commands into equivalent operations for the host operating system, allowing scripts to run consistently across different platforms. It supports the registration of custom commands and the integration of third-party plugins to extend its portable shell capabilities. The library covers broad capability areas

    JavaScriptbashjavascriptnode
    Ver en GitHub↗14,402
  • gam-team/gamAvatar de GAM-team

    GAM-team/GAM

    4,206Ver en GitHub↗

    GAM is a command-line tool for administering Google Workspace and Cloud Identity. It translates command-line arguments into structured API calls, enabling administrators to manage users, groups, organizational units, and domain settings across a Google Workspace environment. The tool handles authentication through OAuth2 flows, service accounts, and workload identity federation, and supports multi-tenant configurations for managing multiple domains or cloud projects from a single installation. GAM distinguishes itself through its batch processing and automation capabilities. It can process la

    Pythongamgooglegoogle-admin-sdk
    Ver en GitHub↗4,206
  • elves/elvishAvatar de elves

    elves/elvish

    6,325Ver en GitHub↗

    Elvish is a shell that combines interactive command-line use with a structured scripting language, designed to make both everyday terminal work and automation tasks more predictable and readable. It parses, compiles, and executes code in three phases, catching syntax and variable errors before any code runs, and it aborts execution on command failure by default to prevent silent errors. The shell introduces value-oriented pipelines that pass structured data like lists, maps, and closures between commands, preserving types without serialization. It also mixes traditional byte streams with thes

    Gogoprogramming-languageshell
    Ver en GitHub↗6,325
  • rstacruz/cheatsheetsAvatar de rstacruz

    rstacruz/cheatsheets

    14,429Ver en GitHub↗

    This project is a comprehensive collection of web development reference guides and technical cheat sheets. It provides a curated set of markdown-based documentation designed to help developers quickly locate syntax patterns and API examples for common web technologies and programming languages. The repository serves as a specialized reference library covering several distinct technical domains. It includes extensive guides for CSS, focusing on selectors, Flexbox, Grid, and responsive layout properties, as well as a DevOps command reference for Docker, Kubernetes, AWS, Ansible, and general she

    SCSS
    Ver en GitHub↗14,429
  • Ver las 30 alternativas a Execa→