package
0.0.1-alpha.12
Repository: https://github.com/re-cinq/aether.git
Documentation: pkg.go.dev

# README

Aethers Plugin Systems

We have based our plugin system off of hashicorps go-plugins. This was mainly so we could detach the need for matching dependencies. We use gRPC for communication

Example Plugin

There is an example plugin in the example directory with comments on the moving parts.

Install a Plugin

// TODO //

Create a Docker Image with your Plugin

// TODO //

Requirements for local setup

as we use gRPC and protobuffers, if you want to make changes to the .proto files you will need to install buf

go install github.com/bufbuild/buf/cmd/[email protected]
go install google.golang.org/protobuf/cmd/[email protected]

buf generate

# Packages

No description provided by the author
No description provided by the author

# Functions

No description provided by the author

# Variables

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

# Structs

This is the implementation of plugin.GRPCPlugin so we can serve/consume this.
ExportPluginSystem is used to manage all third party exporters.
GRPCClient is an implementation of Exporter that can communicate over RPC.
GRPCServer is the gRPC server that GRPCClient talks to.
No description provided by the author
RegisteredPlugin is all the information needed to manage a registered plugin.
RegisteredSourcePlugin is all the information needed to manage a registered plugin.
SourceGRPCClient is an implemntation of v1.Source that can communicate over RPC.
SourceGRPCServer is an GRPC implementation over which SourceGRPClient communicates.
SourcePlugin is the implementation of plugin.GRPCPlugin so we can cionsume this plugin.
SourcePluginSystem is used to manage all third party source.

# Interfaces

Exporter is the interface that plugins need to adhere to.