Documentation ¶
Overview ¶
Package services contains the gRPC server for inter-node communication.
Index ¶
Constants ¶
const DefaultGRPCListenAddress = "[::]:8443"
DefaultGRPCListenAddress is the default listen address for the gRPC server.
const DefaultGRPCPort = 8443
DefaultGRPCPort is the default port for the gRPC server.
Variables ¶
This section is empty.
Functions ¶
func GetByType ¶ added in v0.13.7
func GetByType[T any](srvs MeshServers, t T) (T, bool)
GetByType is a generic function that can be used to search for the given server and automatically convert it to the given type.
Types ¶
type LibP2POptions ¶ added in v0.15.0
type LibP2POptions struct { // HostOptions are options for the libp2p host. HostOptions libp2p.HostOptions // Announce will announce the host on the DHT at the given rendezvous if true. Announce bool // Rendezvous is the rendezvous string to use for libp2p. Rendezvous string }
LibP2POptions are options for serving the gRPC server over libp2p.
type MeshServer ¶ added in v0.3.1
type MeshServer interface { // ListenAndServe starts the server and blocks until the server exits. ListenAndServe() error // Shutdown attempts to stops the server gracefully. Shutdown(ctx context.Context) error }
MeshServer is the generic interface for additional services that can be managed by this server.
type MeshServers ¶ added in v0.13.7
type MeshServers []MeshServer
MeshServers is a list of MeshServers.
func (MeshServers) GetByType ¶ added in v0.13.7
func (s MeshServers) GetByType(t any) (MeshServer, bool)
GetByType iterates the list of given servers and returns one of the given type.
type Options ¶
type Options struct { // DisableGRPC disables the gRPC server and only runs the MeshServers. DisableGRPC bool // WebEnabled is true if the grpc-web server should be enabled. WebEnabled bool // EnableCORS is true if CORS should be enabled with grpc-web. EnableCORS bool // AllowedOrigins is a list of allowed origins for CORS. AllowedOrigins []string // ListenAddress is the address to start the gRPC server on. ListenAddress string // ServerOptions are options for the server. This should include // any registered authentication mechanisms. ServerOptions []grpc.ServerOption // LibP2POptions are options for serving the gRPC server over libp2p. LibP2POptions *LibP2POptions // Servers are additional servers to manage alongside the gRPC server. Servers MeshServers }
Options contains the configuration for the gRPC server.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server is the gRPC server.
func NewServer ¶
NewServer returns a new Server. TODO: We need to dynamically expose certain services only to the internal mesh.
func (*Server) GRPCListenPort ¶ added in v0.13.0
GRPCListenPort returns the port the gRPC server is listening on.
func (*Server) GetServiceInfo ¶
func (s *Server) GetServiceInfo() map[string]grpc.ServiceInfo
GetServiceInfo implements reflection.ServiceInfoProvider.
func (*Server) ListenAndServe ¶
ListenAndServe starts the gRPC server and optional metrics server then blocks until the gRPC server exits.
func (*Server) RegisterService ¶
func (s *Server) RegisterService(desc *grpc.ServiceDesc, impl any)
RegisterService implements grpc.RegistrarService.
Directories ¶
Path | Synopsis |
---|---|
Package admin provides the admin gRPC server.
|
Package admin provides the admin gRPC server. |
Package leaderproxy provides a gRPC interceptor that proxies requests to the leader node.
|
Package leaderproxy provides a gRPC interceptor that proxies requests to the leader node. |
Package membership contains the webmesh membership service.
|
Package membership contains the webmesh membership service. |
Package meshapi contains the webmesh Mesh API service.
|
Package meshapi contains the webmesh Mesh API service. |
Package meshdns contains the Mesh DNS server.
|
Package meshdns contains the Mesh DNS server. |
Package metrics contains the HTTP server for exposing Prometheus metrics.
|
Package metrics contains the HTTP server for exposing Prometheus metrics. |
Package node contains the webmesh node service.
|
Package node contains the webmesh node service. |
Package rbac contains utilities for evaluating requests against roles.
|
Package rbac contains utilities for evaluating requests against roles. |
Package storage provides the storage server.
|
Package storage provides the storage server. |
Package turn contains the STUN/TURN server.
|
Package turn contains the STUN/TURN server. |
Package webrtc contains the webmesh WebRTC service.
|
Package webrtc contains the webmesh WebRTC service. |