dubbo

package module
v3.2.0-rc2 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

README

Apache Dubbo for Golang

Build Status codecov go.dev reference Go Report Card license


Apache Dubbo is an easy-to-use Web and RPC framework that provides multiple language implementations(Go, Java, Rust, Node.js, Web) for communication, service discovery, traffic management, observability, security, tools, and best practices for building enterprise-ready microservices.

Dubbo-go is the Go implementation of triple protocol(a fully gRPC compatible and HTTP-friendly protocol) and the various features for building microservice architecture designed by Dubbo.

Visit the official website for more information.

Getting started

You can learn how to develop a dubbo-go RPC application step by step in 5 minutes by following our Quick Start demo.

It's as simple as the code shown below, you define a service with Protobuf, provide your own service implementation, register it to a server, and start the server.

func (srv *GreetTripleServer) Greet(ctx context.Context, req *greet.GreetRequest) (*greet.GreetResponse, error) {
	resp := &greet.GreetResponse{Greeting: req.Name}
	return resp, nil
}

func main() {
	srv, _ := server.NewServer(
		server.WithServerProtocol(
			protocol.WithPort(20000),
			protocol.WithTriple(),
		),
	)

	_ := greet.RegisterGreetServiceHandler(srv, &GreetTripleServer{})

	if err := srv.Serve(); err != nil {
		logger.Error(err)
	}
}

After the server is up and running, call your service via cURL:

curl \
    --header "Content-Type: application/json" \
    --data '{"name": "Dubbo"}' \
    http://localhost:20000/greet.GreetService/Greet

Or, you can start a standard dubbo-go client to call the service:

func main() {
	cli, _ := client.NewClient(
		client.WithClientURL("127.0.0.1:20000"),
	)

	svc, _ := greet.NewGreetService(cli)

	resp, _ := svc.Greet(context.Background(), &greet.GreetRequest{Name: "hello world"})
	
	logger.Infof("Greet response: %s", resp.Greeting)
}

See the samples for detailed information on usage. Next, learn how to deploy, monitor and manage the traffic of your dubbo-go application by visiting the official website.

Features

dubbo-go-architecture

  • RPC Protocols: Triple, gRPC compatible and HTTP-friendly
  • Service Discovery: Nacos, Zookeeper, Etcd, Polaris-mesh, Consul.
  • Load Balance: Adaptive, Random, RoundRobin, LeastActive, ConsistentHash
  • Traffic Management: traffic split, timeout, rate limiting, canary release
  • Configuration: yaml file, dynamic configuration(Nacos, Zookeeper, etc.).
  • Observability: metrics(Prometheus, Grafana) and tracing(Jaeger, Zipkin).
  • HA Strategy: Failover, Failfast, Failsafe/Failback, Available, Broadcast, Forking

Ecosystem

Contributing

Please visit CONTRIBUTING for details on submitting patches and the contribution workflow.

Contact

User List

If you are using apache/dubbo-go and think that it helps you or want to contribute code for Dubbo-go, please add your company to the user list to let us know your needs.

See more user cases

License

Apache Dubbo-go software is licensed under the Apache License Version 2.0. See the LICENSE file for details.

Documentation

Overview

Package dubbo provides the Go implementation for Dubbo, an RPC and microservice framework.

See dubbo.apache.org for more information about Dubbo.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetConfigResolver

func GetConfigResolver(conf *loaderConf) *koanf.Koanf

GetConfigResolver get config resolver

func Load

func Load(opts ...LoaderConfOption) error

func NewLoaderConf

func NewLoaderConf(opts ...LoaderConfOption) *loaderConf

func SetConsumerServiceWithInfo

func SetConsumerServiceWithInfo(svc common.RPCService, info *client.ClientInfo)

SetConsumerServiceWithInfo sets the consumer service with the client information.

func SetProviderServiceWithInfo

func SetProviderServiceWithInfo(svc common.RPCService, info *server.ServiceInfo)

SetProviderServiceWithInfo sets the provider service with the server information.

Types

type Instance

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

Instance is the highest layer conception that user could touch. It is mapped from RootConfig. When users want to inject global configurations and configure common modules for client layer and server layer, user-side code would be like this:

ins, err := NewInstance() cli, err := ins.NewClient()

func NewInstance

func NewInstance(opts ...InstanceOption) (*Instance, error)

NewInstance receives InstanceOption and initializes RootConfig. There are some processing tasks during initialization.

func (*Instance) NewClient

func (ins *Instance) NewClient(opts ...client.ClientOption) (*client.Client, error)

NewClient is like client.NewClient, but inject configurations from RootConfig and ConsumerConfig

func (*Instance) NewServer

func (ins *Instance) NewServer(opts ...server.ServerOption) (*server.Server, error)

NewServer is like server.NewServer, but inject configurations from RootConfig.

type InstanceOption

type InstanceOption func(*InstanceOptions)

func WithConfigCenter

func WithConfigCenter(opts ...config_center.Option) InstanceOption

func WithEnvironment

func WithEnvironment(environment string) InstanceOption

func WithGroup

func WithGroup(group string) InstanceOption

func WithLogger

func WithLogger(opts ...logger.Option) InstanceOption

func WithMetadataReport

func WithMetadataReport(opts ...metadata.Option) InstanceOption

func WithMetrics

func WithMetrics(opts ...metrics.Option) InstanceOption

func WithModule

func WithModule(module string) InstanceOption

func WithName

func WithName(name string) InstanceOption

func WithOrganization

func WithOrganization(organization string) InstanceOption

func WithOwner

func WithOwner(owner string) InstanceOption

func WithProtocol

func WithProtocol(opts ...protocol.Option) InstanceOption

func WithRegistry

func WithRegistry(opts ...registry.Option) InstanceOption

func WithRemoteMetadata

func WithRemoteMetadata() InstanceOption

func WithShutdown

func WithShutdown(opts ...graceful_shutdown.Option) InstanceOption

func WithTag

func WithTag(tag string) InstanceOption

func WithTracing

func WithTracing(opts ...trace.Option) InstanceOption

WithTracing otel configuration, currently only supports tracing

func WithVersion

func WithVersion(version string) InstanceOption

type InstanceOptions

type InstanceOptions struct {
	Application    *global.ApplicationConfig         `validate:"required" yaml:"application" json:"application,omitempty" property:"application"`
	Protocols      map[string]*global.ProtocolConfig `validate:"required" yaml:"protocols" json:"protocols" property:"protocols"`
	Registries     map[string]*global.RegistryConfig `yaml:"registries" json:"registries" property:"registries"`
	ConfigCenter   *global.CenterConfig              `yaml:"config-center" json:"config-center,omitempty"`
	MetadataReport *global.MetadataReportConfig      `yaml:"metadata-report" json:"metadata-report,omitempty" property:"metadata-report"`
	Provider       *global.ProviderConfig            `yaml:"provider" json:"provider" property:"provider"`
	Consumer       *global.ConsumerConfig            `yaml:"consumer" json:"consumer" property:"consumer"`
	Metrics        *global.MetricsConfig             `yaml:"metrics" json:"metrics,omitempty" property:"metrics"`
	Otel           *global.OtelConfig                `yaml:"otel" json:"otel,omitempty" property:"otel"`
	Logger         *global.LoggerConfig              `yaml:"logger" json:"logger,omitempty" property:"logger"`
	Shutdown       *global.ShutdownConfig            `yaml:"shutdown" json:"shutdown,omitempty" property:"shutdown"`
	// todo(DMwangnima): router feature would be supported in the future
	//Router              []*RouterConfig                   `yaml:"router" json:"router,omitempty" property:"router"`
	EventDispatcherType string                 `default:"direct" yaml:"event-dispatcher-type" json:"event-dispatcher-type,omitempty"`
	CacheFile           string                 `yaml:"cache_file" json:"cache_file,omitempty" property:"cache_file"`
	Custom              *global.CustomConfig   `yaml:"custom" json:"custom,omitempty" property:"custom"`
	Profiles            *global.ProfilesConfig `yaml:"profiles" json:"profiles,omitempty" property:"profiles"`
	TLSConfig           *global.TLSConfig      `yaml:"tls_config" json:"tls_config,omitempty" property:"tls_config"`
}

func (*InstanceOptions) CloneApplication

func (rc *InstanceOptions) CloneApplication() *global.ApplicationConfig

func (*InstanceOptions) CloneConfigCenter

func (rc *InstanceOptions) CloneConfigCenter() *global.CenterConfig

func (*InstanceOptions) CloneConsumer

func (rc *InstanceOptions) CloneConsumer() *global.ConsumerConfig

func (*InstanceOptions) CloneCustom

func (rc *InstanceOptions) CloneCustom() *global.CustomConfig

func (*InstanceOptions) CloneLogger

func (rc *InstanceOptions) CloneLogger() *global.LoggerConfig

func (*InstanceOptions) CloneMetadataReport

func (rc *InstanceOptions) CloneMetadataReport() *global.MetadataReportConfig

func (*InstanceOptions) CloneMetrics

func (rc *InstanceOptions) CloneMetrics() *global.MetricsConfig

func (*InstanceOptions) CloneOtel

func (rc *InstanceOptions) CloneOtel() *global.OtelConfig

func (*InstanceOptions) CloneProfiles

func (rc *InstanceOptions) CloneProfiles() *global.ProfilesConfig

func (*InstanceOptions) CloneProtocols

func (rc *InstanceOptions) CloneProtocols() map[string]*global.ProtocolConfig

func (*InstanceOptions) CloneProvider

func (rc *InstanceOptions) CloneProvider() *global.ProviderConfig

func (*InstanceOptions) CloneRegistries

func (rc *InstanceOptions) CloneRegistries() map[string]*global.RegistryConfig

func (*InstanceOptions) CloneShutdown

func (rc *InstanceOptions) CloneShutdown() *global.ShutdownConfig

func (*InstanceOptions) CloneTLSConfig

func (rc *InstanceOptions) CloneTLSConfig() *global.TLSConfig

func (*InstanceOptions) Prefix

func (rc *InstanceOptions) Prefix() string

type LoaderConfOption

type LoaderConfOption interface {
	// contains filtered or unexported methods
}

func WithBytes

func WithBytes(bytes []byte) LoaderConfOption

WithBytes set load config bytes

func WithDelim

func WithDelim(delim string) LoaderConfOption

func WithGenre

func WithGenre(suffix string) LoaderConfOption

WithGenre set load config file suffix Deprecated: replaced by WithSuffix

func WithInstanceOptions

func WithInstanceOptions(opts *InstanceOptions) LoaderConfOption

func WithPath

func WithPath(path string) LoaderConfOption

WithPath set load config path

func WithSuffix

func WithSuffix(suffix file.Suffix) LoaderConfOption

WithSuffix set load config file suffix

Directories

Path Synopsis
Package client provides APIs for starting RPC calls.
Package client provides APIs for starting RPC calls.
Package cluster provides various LoadBalance and Cluster policies for client-side traffic management.
Package cluster provides various LoadBalance and Cluster policies for client-side traffic management.
cluster/adaptivesvc
Package adaptivesvc implements adaptive service cluster strategy.
Package adaptivesvc implements adaptive service cluster strategy.
cluster/available
Package available implements Available cluster strategy.
Package available implements Available cluster strategy.
cluster/base
Package base implements invoker for the manipulation of cluster strategy.
Package base implements invoker for the manipulation of cluster strategy.
cluster/broadcast
Package broadcast implements Broadcast cluster strategy.
Package broadcast implements Broadcast cluster strategy.
cluster/failback
Package failback implements Failback cluster strategy.
Package failback implements Failback cluster strategy.
cluster/failfast
Package failfast implements Failfast cluster strategy.
Package failfast implements Failfast cluster strategy.
cluster/failover
Package failover implements Failover cluster strategy.
Package failover implements Failover cluster strategy.
cluster/failsafe
Package failsafe implements Failsafe cluster strategy.
Package failsafe implements Failsafe cluster strategy.
cluster/forking
Package forking implements forking cluster strategy.
Package forking implements forking cluster strategy.
cluster/zoneaware
Package zoneaware implements zoneaware cluster strategy.
Package zoneaware implements zoneaware cluster strategy.
cluster_impl
Package cluster_impl is for being compatible with older dubbo-go, please use `imports` package.
Package cluster_impl is for being compatible with older dubbo-go, please use `imports` package.
loadbalance/aliasmethod
Package aliasmethod implements alias-method algorithm load balance strategy.
Package aliasmethod implements alias-method algorithm load balance strategy.
loadbalance/consistenthashing
Package consistenthashing implements ConsistentHash load balance strategy.
Package consistenthashing implements ConsistentHash load balance strategy.
loadbalance/iwrr
Package iwrr implements Interleaved Weighted Round Robin load balance strategy.
Package iwrr implements Interleaved Weighted Round Robin load balance strategy.
loadbalance/leastactive
Package leastactive implements LeastActive load balance strategy.
Package leastactive implements LeastActive load balance strategy.
loadbalance/p2c
Package p2c implements p2c load balance strategy.
Package p2c implements p2c load balance strategy.
loadbalance/random
Package random implements Random load balance strategy.
Package random implements Random load balance strategy.
loadbalance/roundrobin
Package roundrobin implements RoundRobin load balance strategy.
Package roundrobin implements RoundRobin load balance strategy.
metrics
Package mock_metrics is a generated GoMock package.
Package mock_metrics is a generated GoMock package.
Package common contains the utilities and SPI plugin mechanism used across Dubbo project.
Package common contains the utilities and SPI plugin mechanism used across Dubbo project.
Package config assembles all Dubbo configurations and works as the entrance of the whole Dubbo process.
Package config assembles all Dubbo configurations and works as the entrance of the whole Dubbo process.
Package config_center provides Config Center definition and implementations for listening service governance rules.
Package config_center provides Config Center definition and implementations for listening service governance rules.
file
Package file implements config center around file system.
Package file implements config center around file system.
nacos
Package nacos implements config center around Nacos.
Package nacos implements config center around Nacos.
zookeeper
Package zookeeper implements config center around zookeeper.
Package zookeeper implements config center around zookeeper.
Package filter provides Filter definition and implementations for RPC call interception.
Package filter provides Filter definition and implementations for RPC call interception.
accesslog
Package accesslog providers logging filter.
Package accesslog providers logging filter.
adaptivesvc
Package adaptivesvc providers AdaptiveService filter.
Package adaptivesvc providers AdaptiveService filter.
auth
Package auth providers authorization filter.
Package auth providers authorization filter.
echo
Package echo providers health check filter.
Package echo providers health check filter.
exec_limit
Package exec_limit provides a filter for limiting the number of in-progress request and it's thread-safe.
Package exec_limit provides a filter for limiting the number of in-progress request and it's thread-safe.
filter_impl
Package filter_impl is for being compatible with older dubbo-go, please use `imports` package.
Package filter_impl is for being compatible with older dubbo-go, please use `imports` package.
generic
Package generic provides generic invoke filter.
Package generic provides generic invoke filter.
graceful_shutdown
Package graceful_shutdown provides a filter for shutting down gracefully.
Package graceful_shutdown provides a filter for shutting down gracefully.
handler
Package filter is a generated GoMock package.
Package filter is a generated GoMock package.
hystrix
Package hystrix provides hystrix filter.
Package hystrix provides hystrix filter.
otel/trace
Package trace instruments dubbogo with open-telemetry (https://github.com/open-telemetry/opentelemetry-go).
Package trace instruments dubbogo with open-telemetry (https://github.com/open-telemetry/opentelemetry-go).
seata
Package seata provides a filter when use seata-golang, use this filter to transfer xid.
Package seata provides a filter when use seata-golang, use this filter to transfer xid.
sentinel
Package sentinel provides a filter when using sentinel.
Package sentinel provides a filter when using sentinel.
token
Package token provides token filter.
Package token provides token filter.
tps
Package tps provides a filter for limiting the requests by TPS.
Package tps provides a filter for limiting the requests by TPS.
tps/limiter
Package filter is a generated GoMock package.
Package filter is a generated GoMock package.
tps/strategy
Package filter is a generated GoMock package.
Package filter is a generated GoMock package.
tracing
Package tracing provides tracing collection filter.
Package tracing provides tracing collection filter.
Package global defines XxxConfigs for collecting Dubbo configurations and is for internal use only.
Package global defines XxxConfigs for collecting Dubbo configurations and is for internal use only.
Package imports is a one-stop collection of Dubbo SPI implementations that aims to help users with plugin installation by leveraging Go package initialization.
Package imports is a one-stop collection of Dubbo SPI implementations that aims to help users with plugin installation by leveraging Go package initialization.
Package internal contains dubbo-go-internal code, to avoid polluting the top-level dubbo-go package.
Package internal contains dubbo-go-internal code, to avoid polluting the top-level dubbo-go package.
Package logger is unified facade provided by Dubbo to work with different logger frameworks, eg, Zapper, Logrus.
Package logger is unified facade provided by Dubbo to work with different logger frameworks, eg, Zapper, Logrus.
zap
Package metadata collects and exposes information of all services for service discovery purpose.
Package metadata collects and exposes information of all services for service discovery purpose.
Package metrics is for collecting RPC and many other metrics.
Package metrics is for collecting RPC and many other metrics.
rpc
otel
trace
Package trace is for collecting tracing data and adapting with backend tracing systems.
Package trace is for collecting tracing data and adapting with backend tracing systems.
Package protocol provides Protocol definition and core RPC protocol implementations
Package protocol provides Protocol definition and core RPC protocol implementations
dubbo
Package dubbo implements dubbo rpc protocol.
Package dubbo implements dubbo rpc protocol.
dubbo3
Package dubbo3 implements dubbo3.0 rpc protocol.
Package dubbo3 implements dubbo3.0 rpc protocol.
grpc
Package grpc implements grpc rpc protocol.
Package grpc implements grpc rpc protocol.
jsonrpc
Package jsonrpc implements json rpc protocol.
Package jsonrpc implements json rpc protocol.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
rest
Package rest implements restful rpc protocol.
Package rest implements restful rpc protocol.
triple/health/triple_health
Code generated by protoc-gen-triple.
Code generated by protoc-gen-triple.
triple/reflection/triple_reflection
Code generated by protoc-gen-triple.
Code generated by protoc-gen-triple.
triple/triple_protocol
Package triple is a slim RPC framework built on Protocol Buffers and net/http.
Package triple is a slim RPC framework built on Protocol Buffers and net/http.
triple/triple_protocol/internal/assert
Package assert is a minimal assert package using reflection.
Package assert is a minimal assert package using reflection.
triple/triple_protocol/internal/gen/proto/connect/ping/v1/pingv1connect
The connect.ping.v1 package contains an echo service designed to test the connect-go implementation.
The connect.ping.v1 package contains an echo service designed to test the connect-go implementation.
Package proxy is a core RPC concept and is especially designed for Dubbo2 protocol.
Package proxy is a core RPC concept and is especially designed for Dubbo2 protocol.
Package registry defines interfaces to be implemented by service register and service discovery driver.
Package registry defines interfaces to be implemented by service register and service discovery driver.
directory
Package directory implements registry around file system.
Package directory implements registry around file system.
etcdv3
Package etcdv3 implements registry around etcd.
Package etcdv3 implements registry around etcd.
nacos
Package nacos implements registry around Nacos.
Package nacos implements registry around Nacos.
polaris
Package polaris implements registry around polaris.
Package polaris implements registry around polaris.
xds
zookeeper
Package zookeeper implements registry around zookeeper.
Package zookeeper implements registry around zookeeper.
Package remoting provides facilities for decoding and encoding, client and server.
Package remoting provides facilities for decoding and encoding, client and server.
xds
Package server provides APIs for registering services and starting an RPC server.
Package server provides APIs for registering services and starting an RPC server.
xds
balancer
Package balancer installs all the xds balancers.
Package balancer installs all the xds balancers.
balancer/cdsbalancer
Package cdsbalancer implements a balancer to handle CDS responses.
Package cdsbalancer implements a balancer to handle CDS responses.
balancer/clusterimpl
Package clusterimpl implements the xds_cluster_impl balancing policy.
Package clusterimpl implements the xds_cluster_impl balancing policy.
balancer/clustermanager
Package clustermanager implements the cluster manager LB policy for xds.
Package clustermanager implements the cluster manager LB policy for xds.
balancer/clusterresolver
Package clusterresolver contains EDS balancer implementation.
Package clusterresolver contains EDS balancer implementation.
balancer/loadstore
Package loadstore contains the loadStoreWrapper shared by the balancers.
Package loadstore contains the loadStoreWrapper shared by the balancers.
balancer/orca
Package orca implements Open Request Cost Aggregation.
Package orca implements Open Request Cost Aggregation.
balancer/priority
Package priority implements the priority balancer.
Package priority implements the priority balancer.
balancer/ringhash
Package ringhash implements the ringhash balancer.
Package ringhash implements the ringhash balancer.
client
package client implements a full fledged gRPC client for the xDS API used by the xds resolver and balancer implementations.
package client implements a full fledged gRPC client for the xDS API used by the xds resolver and balancer implementations.
client/bootstrap
Package bootstrap provides the functionality to initialize certain aspects of an xDS client by reading a bootstrap file.
Package bootstrap provides the functionality to initialize certain aspects of an xDS client by reading a bootstrap file.
client/controller
Package controller contains implementation to connect to the control plane.
Package controller contains implementation to connect to the control plane.
client/controller/version
Package version defines APIs to deal with different versions of xDS.
Package version defines APIs to deal with different versions of xDS.
client/controller/version/v2
Package v2 provides xDS v2 transport protocol specific functionality.
Package v2 provides xDS v2 transport protocol specific functionality.
client/controller/version/v3
Package v3 provides xDS v3 transport protocol specific functionality.
Package v3 provides xDS v3 transport protocol specific functionality.
client/load
Package load provides functionality to record and maintain load data.
Package load provides functionality to record and maintain load data.
client/pubsub
Package pubsub implements a utility type to maintain resource watchers and the updates.
Package pubsub implements a utility type to maintain resource watchers and the updates.
client/resource
Package internal contains functions/structs shared by xds balancers/resolvers.
Package internal contains functions/structs shared by xds balancers/resolvers.
client/resource/version
Package version defines constants to distinguish between supported xDS API versions.
Package version defines constants to distinguish between supported xDS API versions.
clusterspecifier
Package clusterspecifier contains the ClusterSpecifier interface and a registry for storing and retrieving their implementations.
Package clusterspecifier contains the ClusterSpecifier interface and a registry for storing and retrieving their implementations.
credentials/certprovider/pemfile
Package pemfile provides a file watching certificate provider plugin implementation which works for files with PEM contents.
Package pemfile provides a file watching certificate provider plugin implementation which works for files with PEM contents.
csds
Package csds implements features to dump the status (xDS responses) the xds_client is using.
Package csds implements features to dump the status (xDS responses) the xds_client is using.
httpfilter
Package httpfilter contains the HTTPFilter interface and a registry for storing and retrieving their implementations.
Package httpfilter contains the HTTPFilter interface and a registry for storing and retrieving their implementations.
httpfilter/fault
Package fault implements the Envoy Fault Injection HTTP filter.
Package fault implements the Envoy Fault Injection HTTP filter.
httpfilter/rbac
Package rbac implements the Envoy RBAC HTTP filter.
Package rbac implements the Envoy RBAC HTTP filter.
httpfilter/router
Package router implements the Envoy Router HTTP filter.
Package router implements the Envoy Router HTTP filter.
internal
Package internal contains gRPC-internal code, to avoid polluting the godoc of the top-level grpc package.
Package internal contains gRPC-internal code, to avoid polluting the godoc of the top-level grpc package.
resolver
Package resolver implements the xds resolver, that does LDS and RDS to find the cluster to use.
Package resolver implements the xds resolver, that does LDS and RDS to find the cluster to use.
server
Package server contains internal server-side functionality used by the public facing xds package.
Package server contains internal server-side functionality used by the public facing xds package.
utils/backoff
Package backoff implement the backoff strategy for gRPC.
Package backoff implement the backoff strategy for gRPC.
utils/balancer/stub
Package stub implements a balancer for testing purposes.
Package stub implements a balancer for testing purposes.
utils/balancergroup
Package balancergroup implements a utility struct to bind multiple balancers into one balancer.
Package balancergroup implements a utility struct to bind multiple balancers into one balancer.
utils/balancerload
* * Copyright 2019 gRPC authors.
* * Copyright 2019 gRPC authors.
utils/buffer
Package buffer provides an implementation of an unbounded buffer.
Package buffer provides an implementation of an unbounded buffer.
utils/credentials/xds
Package xds contains non-user facing functionality of the xds credentials.
Package xds contains non-user facing functionality of the xds credentials.
utils/envconfig
Package envconfig contains grpc settings configured by environment variables.
Package envconfig contains grpc settings configured by environment variables.
utils/grpclog
Package grpclog (internal) defines depth logging for grpc.
Package grpclog (internal) defines depth logging for grpc.
utils/grpcrand
Package grpcrand implements math/rand functions in a concurrent-safe way with a global random source, independent of math/rand's global source.
Package grpcrand implements math/rand functions in a concurrent-safe way with a global random source, independent of math/rand's global source.
utils/grpcsync
Package grpcsync implements additional synchronization primitives built upon the sync package.
Package grpcsync implements additional synchronization primitives built upon the sync package.
utils/grpcutil
Package grpcutil provides utility functions used across the gRPC codebase.
Package grpcutil provides utility functions used across the gRPC codebase.
utils/hierarchy
Package hierarchy contains functions to set and get hierarchy string from addresses.
Package hierarchy contains functions to set and get hierarchy string from addresses.
utils/matcher
Package matcher contains types that need to be shared between code under google.golang.org/grpc/xds/...
Package matcher contains types that need to be shared between code under google.golang.org/grpc/xds/...
utils/pretty
Package pretty defines helper functions to pretty-print structs for logging.
Package pretty defines helper functions to pretty-print structs for logging.
utils/rbac
Package rbac provides service-level and method-level access control for a service.
Package rbac provides service-level and method-level access control for a service.
utils/resolver
Package resolver provides internal resolver-related functionality.
Package resolver provides internal resolver-related functionality.
utils/resolver/passthrough
Package passthrough implements a pass-through resolver.
Package passthrough implements a pass-through resolver.
utils/resolver/unix
Package unix implements a resolver for unix targets.
Package unix implements a resolver for unix targets.
utils/serviceconfig
Package serviceconfig contains utility functions to parse service config.
Package serviceconfig contains utility functions to parse service config.
utils/transport/networktype
Package networktype declares the network type to be used in the default dialer.
Package networktype declares the network type to be used in the default dialer.
utils/wrr
Package wrr contains the interface and common implementations of wrr algorithms.
Package wrr contains the interface and common implementations of wrr algorithms.

Jump to

Keyboard shortcuts

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