1 Repo
Initial verification and negotiation processes to ensure compatibility and security between connected components.
Distinct from Plugin Version Management: Focuses on the active handshake process of verification and negotiation, whereas Plugin Version Management covers the general system of pinning and controlling versions.
Explore 1 awesome GitHub repository matching software engineering & architecture · Handshaking. Refine with filters or upvote what's useful.
go-plugin ist ein Framework zur Implementierung von Plugin-Architekturen, bei denen Erweiterungen als separate Prozesse ausgeführt werden und über ein Go-RPC-Plugin-System kommunizieren. Es fungiert als Inter-Process-Communication-Bibliothek und Lebenszyklus-Manager, der es Host-Anwendungen ermöglicht, externe binäre Plugins zu entdecken, zu starten und zu überwachen. Das Framework ermöglicht sprachübergreifende Plugin-Systeme, wodurch Plugins, die in verschiedenen Sprachen geschrieben wurden, über standardisierte RPC-Protokolle in einen Host integriert werden können. Es verfügt über eine bidirektionale RPC-Brücke, die es sowohl dem Host als auch dem Plugin ermöglicht, Schnittstellenimplementierungen für komplexen Datenaustausch und Callbacks auszutauschen. Das System bietet Prozessisolierung durch die Ausführung von Plugins als unabhängige Subprozesse, wodurch sichergestellt wird, dass Plugin-Abstürze die Host-Anwendung nicht beenden. Es deckt Sicherheit durch gegenseitige TLS-Authentifizierung und Integritätsprüfung ab sowie Lebenszyklus-Orchestrierung, einschließlich zustandsbehafteter Prozess-Wiederanbindung, um die Konnektivität während Host-Upgrades aufrechtzuerhalten. Zusätzliche Funktionen umfassen binäre Entdeckung, Protokoll-Versionierung und die Synchronisation von Plugin-Logs und Output-Streams zurück zum Host.
Implements a handshake to verify protocol versions and security tokens before establishing communication channels.