embed

package
v0.17.1 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2023 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Overview

Package embed provides a simplified way to run a webmesh node in-process.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithWebmeshTransport added in v0.5.1

func WithWebmeshTransport(topts TransportOptions) config.Option

WithWebmeshTransport returns a libp2p option that configures the transport to use an embedded webmesh node.

Types

type Node

type Node interface {
	transport.Dialer
	transport.NodeDialer
	transport.LeaderDialer

	// Start starts the node.
	Start(ctx context.Context) error
	// Stop stops the node.
	Stop(ctx context.Context) error
	// Errors returns a channel of errors that occur during the lifetime of the node.
	// At the moment, any error is fatal and will cause the node to stop.
	Errors() <-chan error
	// MeshNode returns the underlying meshnode instance.
	MeshNode() meshnode.Node
	// Storage is the underlying storage instance.
	Storage() storage.Provider
	// Services returns the underlying services instance if it is running.
	Services() *services.Server
	// MeshDNS returns the underlying MeshDNS instance if it is running.
	MeshDNS() *meshdns.Server
	// AddressV4 returns the IPv4 address of the node.
	AddressV4() netip.Prefix
	// AddressV6 returns the IPv6 address of the node.
	AddressV6() netip.Prefix
}

Node is an embedded webmesh node.

func NewNode

func NewNode(ctx context.Context, opts Options) (Node, error)

NewNode creates a new embedded webmesh node.

type Options added in v0.6.0

type Options struct {
	// Config is the configuration for the node.
	Config *config.Config
	// Key is the key for the node.
	Key crypto.PrivateKey
	// Host is the libp2p host for the node.
	Host libp2p.Host
	// Logger is the logger for the node.
	Logger *slog.Logger
}

Options are the options for creating a new embedded webmesh node.

type TransportOptions added in v0.6.0

type TransportOptions struct {
	Config     *wmconfig.Config
	Laddrs     []ma.Multiaddr
	Rendezvous string
	LogLevel   string
	LogFormat  string
}

TransportOptions are options for configuring a libp2p transport.

Jump to

Keyboard shortcuts

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