Documentation
¶
Overview ¶
Package transport is an interface for synchronous connection based communication
Index ¶
- Variables
- func NewHTTPTransport(opts ...Option) *httpTransport
- type Client
- type Config
- type ConfigStore
- type DiConfig
- type DiFlags
- type DialOption
- type DialOptions
- type ListenOption
- type ListenOptions
- type Listener
- type Message
- type Option
- type Options
- type Socket
- type Transport
- type TransportConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var DiNoCliSet = wire.NewSet(ProvideConfigNoFlags, Provide)
View Source
var DiSet = wire.NewSet(ProvideFlags, ProvideConfig, Provide)
View Source
var Plugins = generic.NewContainer(func(opts ...Option) Transport { return nil })
Functions ¶
func NewHTTPTransport ¶
func NewHTTPTransport(opts ...Option) *httpTransport
Types ¶
type Config ¶
type Config struct {
Transport TransportConfig `json:"broker" yaml:"Transport"`
}
type ConfigStore ¶
type ConfigStore struct {
Enabled bool `json:"enabled" yaml:"Enabled"`
Plugin string `json:"plugin,omitempty" yaml:"Plugin,omitempty"`
Addresses []string `json:"addresses,omitempty" yaml:"Addresses,omitempty"`
}
func NewConfigStore ¶
func NewConfigStore() ConfigStore
func (*ConfigStore) Merge ¶
func (d *ConfigStore) Merge(src *ConfigStore) error
type DiConfig ¶
type DiConfig struct{}
DiConfig is marker that DiFlags has been parsed into Config
func ProvideConfig ¶
type DialOption ¶
type DialOption func(*DialOptions)
func WithTimeout ¶
func WithTimeout(d time.Duration) DialOption
type DialOptions ¶
type DialOptions struct {
// Tells the transport this is a streaming connection with
// multiple calls to send/recv and that send may not even be called
Stream bool
// Timeout for dialing
Timeout time.Duration
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
}
type ListenOption ¶
type ListenOption func(*ListenOptions)
func NetListener ¶
func NetListener(customListener net.Listener) ListenOption
NetListener Set net.Listener for httpTransport.
type ListenOptions ¶
type Option ¶
type Option func(*Options)
func Codec ¶
Codec sets the codec used for encoding where the transport does not support message headers.
func Secure ¶
Use secure communication. If TLSConfig is not specified we use InsecureSkipVerify and generate a self signed cert.
type Options ¶
type Options struct {
// Addrs is the list of intermediary addresses to connect to
Addrs []string
// Codec is the codec interface to use where headers are not supported
// by the transport and the entire payload must be encoded
Codec codec.Marshaler
// Secure tells the transport to secure the connection.
// In the case TLSConfig is not specified best effort self-signed
// certs should be used
Secure bool
// TLSConfig to secure the connection. The assumption is that this
// is mTLS keypair
TLSConfig *tls.Config
// Timeout sets the timeout for Send/Recv
Timeout time.Duration
// Other options for implementations of the interface
// can be stored in a context
Context context.Context
// Logger is the underline logger
Logger logger.Logger
}
type Transport ¶
type Transport interface {
Init(...Option) error
Options() Options
Dial(addr string, opts ...DialOption) (Client, error)
Listen(addr string, opts ...ListenOption) (Listener, error)
String() string
}
Transport is an interface which is used for communication between services. It uses connection based socket send/recv semantics and has various implementations; http, grpc, quic.
var ( DefaultTransport Transport = NewHTTPTransport() DefaultDialTimeout = time.Second * 5 )
func NewMemoryTransport ¶
type TransportConfig ¶
Click to show internal directories.
Click to hide internal directories.