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
·
hashicorp avatar

hashicorp/go-plugin

0
View on GitHub↗
6,019 estrellas·503 forks·Go·MPL-2.0·9 vistas

Go Plugin

go-plugin es un framework para implementar arquitecturas de plugins donde las extensiones se ejecutan como procesos separados y se comunican a través de un sistema de plugins RPC de Go. Funciona como una librería de comunicación entre procesos (IPC) y gestor de ciclo de vida que permite a las aplicaciones anfitrionas descubrir, lanzar y monitorear plugins binarios externos.

El framework permite sistemas de plugins entre lenguajes, permitiendo que los plugins escritos en diferentes lenguajes se integren con un anfitrión a través de protocolos RPC estandarizados. Cuenta con un puente RPC bidireccional que permite tanto al anfitrión como al plugin intercambiar implementaciones de interfaz para el intercambio de datos complejos y callbacks.

El sistema proporciona aislamiento de procesos ejecutando plugins como subprocesos independientes, asegurando que los bloqueos de los plugins no terminen la aplicación anfitriona. Cubre la seguridad mediante autenticación TLS mutua y verificación de integridad, así como la orquestación del ciclo de vida, incluida la reconexión de procesos con estado para mantener la conectividad durante las actualizaciones del anfitrión. Las capacidades adicionales incluyen descubrimiento binario, versionado de protocolos y la sincronización de registros y flujos de salida del plugin de vuelta al anfitrión.

Features

  • Process-Isolated Plugins - Executes plugins as independent operating system processes to ensure plugin crashes do not terminate the host application.
  • RPC-Based Plugin Systems - Implements a plugin architecture where extensions communicate with the host via a Go RPC system.
  • Plugin Lifecycle Management - Discovers, launches, and monitors external binary plugins while managing their connection states and cleanup.
  • Plugin Lifecycle Management - Provides a comprehensive system for launching binary plugins and managing their execution and connection states.
  • Plugin Orchestration - Manages the starting, monitoring, and graceful termination of plugin binaries, including reattachment during upgrades.
  • Multi-Language Plugin Frameworks - Provides a communication layer using standardized RPC protocols to integrate plugins written in different languages.
  • Bidirectional RPC Bridges - Provides a mechanism for sharing interface implementations between a host and plugin to enable bidirectional callbacks.
  • Interface Passing - Supports bidirectional communication by allowing the host and plugin to exchange interface implementations.
  • Cross-Language RPC Frameworks - Integrates functionality written in different programming languages through a standardized Go RPC communication layer.
  • Inter-process Communication Libraries - Provides a library for exchanging data and invoking methods between a host process and external plugins via secure channels.
  • Plugin Connection Management - Establishes RPC connections to separate processes to execute functions and instantiate plugin types.
  • Remote Procedure Calls - Invokes methods on external plugin processes and retrieves results within the host application via RPC.
  • Mutual TLS Authentication - Implements secure communication channels between the host and plugins using mutual TLS for identity verification.
  • Plugin Communication Channels - Establishes authenticated and encrypted communication channels between the host process and its plugins.
  • Bidirectional Interface Exchanges - Implements a bidirectional RPC bridge allowing hosts and plugins to exchange interface implementations for complex callbacks.
  • Extensible Architectures - Enables building software where third parties can add features via external binaries without modifying core source code.
  • Inter-Process Communication - Provides a gRPC-based framework for exchanging data and invoking methods between host and separate plugin processes.
  • Inter-Process Communication Management - Handles the entire lifecycle, security, and data exchange between the main application and separate plugin subprocesses.
  • Complex Data Type Exchange - Manages the exchange of complex arguments and return values through specialized connections and raw data streams.
  • Process Reattachment - Allows a host to reconnect to a previously running plugin process using saved configuration to maintain state.
  • Protocol Version Verifiers - Checks protocol version compatibility during the handshake process to prevent incompatible plugins from connecting.
  • Custom Protocol Implementations - Provides the ability to implement custom interfaces for defining how data is exchanged over network listeners.
  • Stream Multiplexing - Shares a single network connection to handle multiple concurrent data streams for control signals and logs.
  • Secure RPC Channels - Establishes encrypted and authenticated communication channels between host and plugins using mutual TLS.
  • Service Exposure - Provides network listeners and server management within the binary to expose plugin services to clients.
  • Process Reattachment Mechanisms - Allows a new host process to connect to an already running plugin to maintain state during upgrades.
  • Stateful Reattachment - Enables host upgrades without restarting plugin processes by connecting the new host to the existing plugin.
  • Integrity Verifications - Verifies the authenticity of plugin binaries using checksums and secure communication channels.
  • Local Plugin Discovery - Scans local directories using glob patterns to identify and locate external plugin binary files.
  • Handshaking - Implements a handshake to verify protocol versions and security tokens before establishing communication channels.
  • Data Streaming - Facilitates the exchange of message sequences to handle large datasets or continuous updates.

Historial de estrellas

Gráfico del historial de estrellas de hashicorp/go-pluginGráfico del historial de estrellas de hashicorp/go-plugin

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 hashicorp/go-plugin?

go-plugin es un framework para implementar arquitecturas de plugins donde las extensiones se ejecutan como procesos separados y se comunican a través de un sistema de plugins RPC de Go. Funciona como una librería de comunicación entre procesos (IPC) y gestor de ciclo de vida que permite a las aplicaciones anfitrionas descubrir, lanzar y monitorear plugins binarios externos.

¿Cuáles son las características principales de hashicorp/go-plugin?

Las características principales de hashicorp/go-plugin son: Process-Isolated Plugins, RPC-Based Plugin Systems, Plugin Lifecycle Management, Plugin Orchestration, Multi-Language Plugin Frameworks, Bidirectional RPC Bridges, Interface Passing, Cross-Language RPC Frameworks.

¿Qué alternativas de código abierto existen para hashicorp/go-plugin?

Las alternativas de código abierto para hashicorp/go-plugin incluyen: apache/dubbo-spring-boot-project — This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring… nghttp2/nghttp2 — nghttp2 is a suite of low-level C libraries and tools designed for implementing the HTTP/2 protocol. It provides a… apache/thrift — Thrift is a cross-language remote procedure call framework and data serialization protocol. It provides an interface… google/tarpc — tarpc is a remote procedure call framework for Rust that generates server traits and client stubs for network… weibocom/motan — Motan is a cross-language RPC framework and distributed service mesh designed for building high-performance… geniusvjr/learningnotes — LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system…

Alternativas open-source a Go Plugin

Proyectos open-source similares, clasificados según cuántas características comparten con Go Plugin.
  • apache/dubbo-spring-boot-projectAvatar de apache

    apache/dubbo-spring-boot-project

    5,389Ver en GitHub↗

    This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring Boot applications. It serves as a microservice communication framework that enables the implementation of RPC services, service discovery, and distributed governance through automated configuration. The project distinguishes itself by providing a cross-language RPC bridge, allowing services written in different languages to communicate via standards such as gRPC and Protobuf. It further enables the exposure of backend microservices as REST endpoints using the Triple protocol for

    Javadubbo
    Ver en GitHub↗5,389
  • nghttp2/nghttp2Avatar de nghttp2

    nghttp2/nghttp2

    5,009Ver en GitHub↗

    nghttp2 is a suite of low-level C libraries and tools designed for implementing the HTTP/2 protocol. It provides a memory-efficient implementation of the protocol's core logic, including framing, stream multiplexing, and flow control. The project includes a dedicated library for HPACK header compression and decompression to reduce network bandwidth. It also provides a toolset for analyzing network traffic and benchmarking server performance, including throughput and latency measurements. Its broader capabilities cover protocol implementation and traffic management, including ALPN connection

    C++
    Ver en GitHub↗5,009
  • apache/thriftAvatar de apache

    apache/thrift

    10,933Ver en GitHub↗

    Thrift is a cross-language remote procedure call framework and data serialization protocol. It provides an interface definition language to specify data types and service interfaces in a neutral format, enabling the automated generation of client and server code across multiple programming languages. The project functions as a polyglot service communicator using a layered software stack to ensure interoperable communication. It focuses on implementing cross-language remote procedure calls and transforming complex data structures into standardized formats for efficient network transport. The

    C++
    Ver en GitHub↗10,933
  • google/tarpcAvatar de google

    google/tarpc

    3,713Ver en GitHub↗

    tarpc is a remote procedure call framework for Rust that generates server traits and client stubs for network communication. It provides an asynchronous service interface that allows remote functions to be called as if they were local asynchronous tasks. The framework utilizes a serialized transport layer to move request and response data via TCP sockets, Unix domain sockets, or in-process channels. It includes a request lifecycle interceptor for injecting custom logic to handle authorization, throttling, and load balancing, as well as a distributed request telemetry system that attaches dead

    Rust
    Ver en GitHub↗3,713
  • Ver las 30 alternativas a Go Plugin→