Documentation ¶
Overview ¶
Package transport is an interface for synchronous connection based communication
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
DefaultBufSizeH2 = 4 * 1024 * 1024
)
Functions ¶
func NewHTTPTransport ¶
func NewHTTPTransport(opts ...Option) *httpTransport
Types ¶
type DialOption ¶
type DialOption func(*DialOptions)
func WithConnClose ¶
func WithConnClose() DialOption
WithConnClose sets the Connection header to close.
func WithInsecureSkipVerify ¶
func WithInsecureSkipVerify(b bool) DialOption
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 // ConnClose sets the Connection header to close ConnClose bool // InsecureSkipVerify skip TLS verification. InsecureSkipVerify bool // 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
InsecureSkipVerify sets the TLS options to skip verification. NetListener Set net.Listener for httpTransport.
type ListenOptions ¶
type Option ¶
type Option func(*Options)
func BuffSizeH2 ¶
BuffSizeH2 sets the HTTP2 buffer size. Default is 4 * 1024 * 1024.
func Codec ¶
Codec sets the codec used for encoding where the transport does not support message headers.
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 // BuffSizeH2 is the HTTP2 buffer size BuffSizeH2 int }
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 ¶
Source Files ¶
Click to show internal directories.
Click to hide internal directories.