network

package
v3.10.39 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package network is for creating internetworks

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Error

type Error interface {
	// Count is current count of errors
	Count() int
	// Msg is last error message
	Msg() string
}

Error is network node errors

type Network

type Network interface {
	// Node is network node
	Node
	// Initialise options
	Init(...Option) error
	// Options returns the network options
	Options() Options
	// Name of the network
	Name() string
	// Connect starts the resolver and tunnel server
	Connect() error
	// Close stops the tunnel and resolving
	Close() error
	// Client is micro client
	Client() client.Client
	// Server is micro server
	Server() server.Server
}

Network is micro network

type Node

type Node interface {
	// Id is node id
	Id() string
	// Address is node bind address
	Address() string
	// Peers returns node peers
	Peers() []Node
	// Network is the network node is in
	Network() Network
	// Status returns node status
	Status() Status
}

Node is network node

type Option

type Option func(*Options)

Option func

func Address

func Address(a string) Option

Address sets the network address

func Advertise(a string) Option

Advertise sets the address to advertise

func ID

func ID(id string) Option

ID sets the id of the network node

func Logger

func Logger(l logger.Logger) Option

Logger sets the network logger

func Meter

func Meter(m meter.Meter) Option

Meter sets the meter

func Name

func Name(n string) Option

Name sets the network name

func Nodes

func Nodes(n ...string) Option

Nodes is a list of nodes to connect to

func Proxy

func Proxy(p proxy.Proxy) Option

Proxy sets the network proxy

func Router

func Router(r router.Router) Option

Router sets the network router

func Tracer

func Tracer(t tracer.Tracer) Option

Tracer to be used for tracing

func Tunnel

func Tunnel(t tunnel.Tunnel) Option

Tunnel sets the network tunnel

type Options

type Options struct {
	// Router used for routing
	Router router.Router
	// Proxy holds the proxy
	Proxy proxy.Proxy
	// Logger used for logging
	Logger logger.Logger
	// Meter used for metrics
	Meter meter.Meter
	// Tracer used for tracing
	Tracer tracer.Tracer
	// Tunnel used for transfer data
	Tunnel tunnel.Tunnel
	// ID of the node
	ID string
	// Name of the network
	Name string
	// Address to bind to
	Address string
	// Advertise sets the address to advertise
	Advertise string
	// Nodes is a list of nodes to connect to
	Nodes []string
}

Options configure network

func NewOptions

func NewOptions(opts ...Option) Options

NewOptions returns network default options

type Status

type Status interface {
	// Error reports error status
	Error() Error
}

Status is node status

Directories

Path Synopsis
Package transport is an interface for synchronous connection based communication
Package transport is an interface for synchronous connection based communication
Package tunnel provides gre network tunnelling
Package tunnel provides gre network tunnelling
broker
Package broker is a tunnel broker
Package broker is a tunnel broker
transport
Package transport provides a tunnel transport
Package transport provides a tunnel transport

Jump to

Keyboard shortcuts

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