v1.34.3 Latest Latest

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

Go to latest
Published: Apr 24, 2024 License: MIT Imports: 3 Imported by: 40



Package relay contains relaying interfaces for external use.

These interfaces are currently unstable, and aren't covered by the API backwards-compatibility guarantee.



This section is empty.


This section is empty.


This section is empty.


type CallFrame

type CallFrame interface {
	// TTL is the TTL of the underlying frame
	TTL() time.Duration
	// Caller is the name of the originating service.
	Caller() []byte
	// Service is the name of the destination service.
	Service() []byte
	// Method is the name of the method being called.
	Method() []byte
	// RoutingDelegate is the name of the routing delegate, if any.
	RoutingDelegate() []byte
	// RoutingKey may refer to an alternate traffic group instead of the
	// traffic group identified by the service name.
	RoutingKey() []byte
	// Arg2StartOffset returns the offset from start of payload to the
	// beginning of Arg2 in bytes.
	Arg2StartOffset() int
	// Arg2EndOffset returns the offset from start of payload to the end of
	// Arg2 in bytes, and hasMore to indicate if there are more frames and
	// Arg3 has not started (i.e. Arg2 is fragmented).
	Arg2EndOffset() (_ int, hasMore bool)
	// Arg2Iterator returns the iterator for reading Arg2 key value pair
	// of TChannel-Thrift Arg Scheme. If no iterator is available, return
	// io.EOF.
	Arg2Iterator() (arg2.KeyValIterator, error)
	// Arg2Append appends a key/val pair to arg2
	Arg2Append(key, val []byte)

CallFrame is an interface that abstracts access to the call req frame.

type Conn added in v1.1.0

type Conn struct {
	// RemoteAddr is the remote address of the underlying TCP connection.
	RemoteAddr string

	// RemoteProcessName is the process name sent in the TChannel handshake.
	RemoteProcessName string

	// IsOutbound returns whether this connection is an outbound connection
	// initiated via the relay.
	IsOutbound bool

	// Context contains connection-specific context which can be accessed via
	// RelayHost.Start()
	Context context.Context

Conn contains information about the underlying connection.

type KeyVal added in v1.20.0

type KeyVal struct {
	Key []byte
	Val []byte

KeyVal is a key, val pair in arg2

type RateLimitDropError added in v1.2.2

type RateLimitDropError struct{}

RateLimitDropError is the error that should be returned from RelayHosts.Get if the request should be dropped silently. This is bit of a hack, because rate limiting of this nature isn't part of the actual TChannel protocol. The relayer will record that it has dropped the packet, but *won't* notify the client.

func (RateLimitDropError) Error added in v1.2.2

func (e RateLimitDropError) Error() string

type RespFrame added in v1.22.0

type RespFrame interface {
	// OK indicates whether the call was successful
	OK() bool

	// ArgScheme returns the scheme of the arg
	ArgScheme() []byte

	// Arg2IsFragmented indicates whether arg2 runs over the first frame
	Arg2IsFragmented() bool

	// Arg2 returns the raw arg2 payload
	Arg2() []byte

RespFrame is an interface that abstracts access to the CallRes frame


Path Synopsis

Jump to

Keyboard shortcuts

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