Help us shape the future of Go! Take the 2026 Go Developer Survey

shared

package
v1.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2025 License: MPL-2.0 Imports: 5 Imported by: 8

Documentation

Overview

Package shared contains shared data between the host and plugins.

Index

Constants

This section is empty.

Variables

View Source
var Handshake = plugin.HandshakeConfig{
	ProtocolVersion:  1,
	MagicCookieKey:   "BASIC_PLUGIN",
	MagicCookieValue: "hello",
}

Handshake is a common handshake that is shared by plugin and host.

View Source
var PluginMap = map[string]plugin.Plugin{
	"counter": &CounterPlugin{},
}

PluginMap is the map of plugins we can dispense.

Functions

This section is empty.

Types

type AddHelper

type AddHelper interface {
	Sum(int64, int64) (int64, error)
}

type Counter

type Counter interface {
	Put(key string, value int64, a AddHelper) error
	Get(key string) (int64, error)
}

KV is the interface that we're exposing as a plugin.

type CounterPlugin

type CounterPlugin struct {
	plugin.NetRPCUnsupportedPlugin
	// Concrete implementation, written in Go. This is only used for plugins
	// that are written in Go.
	Impl Counter
}

This is the implementation of plugin.Plugin so we can serve/consume this. We also implement GRPCPlugin so that this plugin can be served over gRPC.

func (*CounterPlugin) GRPCClient

func (p *CounterPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)

func (*CounterPlugin) GRPCServer

func (p *CounterPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error

type GRPCAddHelperClient

type GRPCAddHelperClient struct {
	// contains filtered or unexported fields
}

GRPCClient is an implementation of KV that talks over RPC.

func (*GRPCAddHelperClient) Sum

func (m *GRPCAddHelperClient) Sum(a, b int64) (int64, error)

type GRPCAddHelperServer

type GRPCAddHelperServer struct {
	// This is the real implementation
	Impl AddHelper
}

Here is the gRPC server that GRPCClient talks to.

func (*GRPCAddHelperServer) Sum

func (m *GRPCAddHelperServer) Sum(ctx context.Context, req *proto.SumRequest) (resp *proto.SumResponse, err error)

type GRPCClient

type GRPCClient struct {
	// contains filtered or unexported fields
}

GRPCClient is an implementation of KV that talks over RPC.

func (*GRPCClient) Get

func (m *GRPCClient) Get(key string) (int64, error)

func (*GRPCClient) Put

func (m *GRPCClient) Put(key string, value int64, a AddHelper) error

type GRPCServer

type GRPCServer struct {
	// This is the real implementation
	Impl Counter
	// contains filtered or unexported fields
}

Here is the gRPC server that GRPCClient talks to.

func (*GRPCServer) Get

func (*GRPCServer) Put

func (m *GRPCServer) Put(ctx context.Context, req *proto.PutRequest) (*proto.Empty, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL