Skip to content

mirkobrombin/go-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Plugin

A structured plugin registry for Go with deterministic lifecycle management and lightweight discovery helpers.

Features

  • Deterministic Registry: Preserve insertion order for predictable startup and shutdown.
  • Factory Support: Register deferred constructors for dynamic plugin creation.
  • Reflection Discovery: Discover plugin implementations from runtime values.
  • Optional Router Integration: Bridge route-providing plugins into go-module-router.

Installation

go get github.com/mirkobrombin/go-plugin

Quick Start

package main

import "github.com/mirkobrombin/go-plugin/pkg/plugin"

type samplePlugin struct{}

func (samplePlugin) Name() string { return "sample" }
func (samplePlugin) Start() error { return nil }
func (samplePlugin) Stop() error  { return nil }

func main() {
    registry := plugin.NewRegistry()
    if err := registry.Register(samplePlugin{}); err != nil {
        panic(err)
    }

    _ = registry.StartAll()
    _ = registry.StopAll()
}

Documentation

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A structured plugin registry for Go with deterministic lifecycle management and lightweight discovery helpers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages