Documentation
¶
Index ¶
- Variables
- func AcceptMuxedListener(ctx context.Context, lis net.Listener, srv *Server, yamuxConf *yamux.Config) error
- func CheckStripPrefix(id string, matchPrefixes []string) (strippedID string, matchedPrefix string)
- func Listen(ctx context.Context, addr string, srv *Server, errCh <-chan error) error
- func NewPipeStream(ctx context.Context) (Stream, Stream)
- func NewYamuxConfig() *yamux.Config
- type CallData
- func (m *CallData) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *CallData) CloneVT() *CallData
- func (this *CallData) EqualMessageVT(thatMsg any) bool
- func (this *CallData) EqualVT(that *CallData) bool
- func (x *CallData) GetComplete() bool
- func (x *CallData) GetData() []byte
- func (x *CallData) GetDataIsZero() bool
- func (x *CallData) GetError() string
- func (x *CallData) MarshalJSON() ([]byte, error)
- func (x *CallData) MarshalProtoJSON(s *json.MarshalState)
- func (x *CallData) MarshalProtoText() string
- func (m *CallData) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *CallData) MarshalToVT(dAtA []byte) (int, error)
- func (m *CallData) MarshalVT() (dAtA []byte, err error)
- func (*CallData) ProtoMessage()
- func (x *CallData) Reset()
- func (m *CallData) SizeVT() (n int)
- func (x *CallData) String() string
- func (x *CallData) UnmarshalJSON(b []byte) error
- func (x *CallData) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *CallData) UnmarshalVT(dAtA []byte) error
- func (p *CallData) Validate() error
- type CallReceipt
- type CallStart
- func (m *CallStart) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *CallStart) CloneVT() *CallStart
- func (this *CallStart) EqualMessageVT(thatMsg any) bool
- func (this *CallStart) EqualVT(that *CallStart) bool
- func (x *CallStart) GetData() []byte
- func (x *CallStart) GetDataIsZero() bool
- func (x *CallStart) GetRpcMethod() string
- func (x *CallStart) GetRpcService() string
- func (x *CallStart) MarshalJSON() ([]byte, error)
- func (x *CallStart) MarshalProtoJSON(s *json.MarshalState)
- func (x *CallStart) MarshalProtoText() string
- func (m *CallStart) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *CallStart) MarshalToVT(dAtA []byte) (int, error)
- func (m *CallStart) MarshalVT() (dAtA []byte, err error)
- func (*CallStart) ProtoMessage()
- func (x *CallStart) Reset()
- func (m *CallStart) SizeVT() (n int)
- func (x *CallStart) String() string
- func (x *CallStart) UnmarshalJSON(b []byte) error
- func (x *CallStart) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *CallStart) UnmarshalVT(dAtA []byte) error
- func (p *CallStart) Validate() error
- type Client
- type ClientInvoker
- type ClientRPC
- func (r *ClientRPC) Close()
- func (c *ClientRPC) Context() context.Context
- func (c *ClientRPC) HandleCallCancel() error
- func (c *ClientRPC) HandleCallData(pkt *CallData) error
- func (r *ClientRPC) HandleCallStart(pkt *CallStart) error
- func (r *ClientRPC) HandlePacket(msg *Packet) error
- func (r *ClientRPC) HandlePacketData(data []byte) error
- func (r *ClientRPC) HandleStreamClose(closeErr error)
- func (c *ClientRPC) ReadOne() ([]byte, error)
- func (r *ClientRPC) Start(writer PacketWriter, writeFirstMsg bool, firstMsg []byte) error
- func (c *ClientRPC) Wait(ctx context.Context) error
- func (c *ClientRPC) WaitTerminal(ownerCtx context.Context) (TerminalKind, error)
- func (c *ClientRPC) WriteCallCancel() error
- func (c *ClientRPC) WriteCallData(data []byte, dataIsZero, complete bool, err error) error
- type ClientSet
- type CloseHandler
- type HTTPServer
- type Handler
- type Invoker
- type InvokerFunc
- type InvokerSlice
- type Message
- type MsgStream
- type MsgStreamRw
- type Mux
- type MuxedConn
- func NewMuxedConn(conn net.Conn, outbound bool, yamuxConf *yamux.Config) (MuxedConn, error)
- func NewMuxedConnWithRwc(ctx context.Context, rwc io.ReadWriteCloser, outbound bool, ...) (MuxedConn, error)
- func NewWebSocketConn(ctx context.Context, conn *websocket.Conn, isServer bool, ...) (MuxedConn, error)
- type MuxedStream
- type OpenStreamFunc
- type Packet
- func (m *Packet) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Packet) CloneVT() *Packet
- func (this *Packet) EqualMessageVT(thatMsg any) bool
- func (this *Packet) EqualVT(that *Packet) bool
- func (m *Packet) GetBody() isPacket_Body
- func (x *Packet) GetCallCancel() bool
- func (x *Packet) GetCallData() *CallData
- func (x *Packet) GetCallStart() *CallStart
- func (x *Packet) MarshalJSON() ([]byte, error)
- func (x *Packet) MarshalProtoJSON(s *json.MarshalState)
- func (x *Packet) MarshalProtoText() string
- func (m *Packet) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Packet) MarshalToVT(dAtA []byte) (int, error)
- func (m *Packet) MarshalVT() (dAtA []byte, err error)
- func (*Packet) ProtoMessage()
- func (x *Packet) Reset()
- func (m *Packet) SizeVT() (n int)
- func (x *Packet) String() string
- func (x *Packet) UnmarshalJSON(b []byte) error
- func (x *Packet) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Packet) UnmarshalVT(dAtA []byte) error
- func (p *Packet) Validate() error
- type PacketDataHandler
- type PacketHandler
- type PacketReadWriter
- func (r *PacketReadWriter) Close() error
- func (r *PacketReadWriter) ReadPump(cb PacketDataHandler, closed CloseHandler)
- func (r *PacketReadWriter) ReadToHandler(cb PacketDataHandler) error
- func (r *PacketReadWriter) Write(p []byte) (n int, err error)
- func (r *PacketReadWriter) WritePacket(p *Packet) error
- type PacketWriter
- type Packet_CallCancel
- func (m *Packet_CallCancel) CloneOneofVT() isPacket_Body
- func (m *Packet_CallCancel) CloneVT() *Packet_CallCancel
- func (this *Packet_CallCancel) EqualVT(thatIface isPacket_Body) bool
- func (m *Packet_CallCancel) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Packet_CallCancel) MarshalToVT(dAtA []byte) (int, error)
- func (m *Packet_CallCancel) SizeVT() (n int)
- type Packet_CallData
- func (m *Packet_CallData) CloneOneofVT() isPacket_Body
- func (m *Packet_CallData) CloneVT() *Packet_CallData
- func (this *Packet_CallData) EqualVT(thatIface isPacket_Body) bool
- func (m *Packet_CallData) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Packet_CallData) MarshalToVT(dAtA []byte) (int, error)
- func (m *Packet_CallData) SizeVT() (n int)
- type Packet_CallStart
- func (m *Packet_CallStart) CloneOneofVT() isPacket_Body
- func (m *Packet_CallStart) CloneVT() *Packet_CallStart
- func (this *Packet_CallStart) EqualVT(thatIface isPacket_Body) bool
- func (m *Packet_CallStart) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Packet_CallStart) MarshalToVT(dAtA []byte) (int, error)
- func (m *Packet_CallStart) SizeVT() (n int)
- type PrefixClient
- type PrefixInvoker
- type QueryableInvoker
- type RawMessage
- func (m *RawMessage) Clear()
- func (m *RawMessage) GetData() []byte
- func (m *RawMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *RawMessage) MarshalVT() ([]byte, error)
- func (m *RawMessage) Reset()
- func (m *RawMessage) SetData(data []byte)
- func (m *RawMessage) SizeVT() int
- func (m *RawMessage) UnmarshalVT(data []byte) error
- type RwcConn
- func (p *RwcConn) Close() error
- func (p *RwcConn) LocalAddr() net.Addr
- func (p *RwcConn) Read(b []byte) (int, error)
- func (p *RwcConn) RemoteAddr() net.Addr
- func (p *RwcConn) SetDeadline(t time.Time) error
- func (p *RwcConn) SetReadDeadline(t time.Time) error
- func (p *RwcConn) SetWriteDeadline(t time.Time) error
- func (p *RwcConn) Write(pkt []byte) (int, error)
- type Server
- type ServerInvocation
- type ServerRPC
- func (c *ServerRPC) Context() context.Context
- func (r *ServerRPC) Done() <-chan struct{}
- func (c *ServerRPC) HandleCallCancel() error
- func (c *ServerRPC) HandleCallData(pkt *CallData) error
- func (r *ServerRPC) HandleCallStart(pkt *CallStart) error
- func (r *ServerRPC) HandlePacket(msg *Packet) error
- func (r *ServerRPC) HandlePacketData(data []byte) error
- func (c *ServerRPC) HandleStreamClose(closeErr error)
- func (c *ServerRPC) ReadOne() ([]byte, error)
- func (c *ServerRPC) Wait(ctx context.Context) error
- func (r *ServerRPC) WaitTerminal(ownerCtx context.Context) (TerminalKind, error)
- func (c *ServerRPC) WriteCallCancel() error
- func (c *ServerRPC) WriteCallData(data []byte, dataIsZero, complete bool, err error) error
- type Stream
- type StreamRecv
- type StreamRwc
- type StreamSend
- type StreamSendAndClose
- type TerminalKind
- func (x TerminalKind) Enum() *TerminalKind
- func (x TerminalKind) MarshalJSON() ([]byte, error)
- func (x TerminalKind) MarshalProtoJSON(s *json.MarshalState)
- func (x TerminalKind) MarshalProtoText() string
- func (x TerminalKind) MarshalText() ([]byte, error)
- func (x TerminalKind) String() string
- func (x *TerminalKind) UnmarshalJSON(b []byte) error
- func (x *TerminalKind) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (x *TerminalKind) UnmarshalText(b []byte) error
- type VClient
- type VMux
Constants ¶
This section is empty.
Variables ¶
var ( // ErrReset is returned when a stream is reset. ErrReset = errors.New("stream reset") // ErrUnimplemented is returned if the RPC method was not implemented. ErrUnimplemented = errors.New("unimplemented") // ErrCompleted is returned if a message is received after the rpc was completed. ErrCompleted = errors.New("unexpected packet after rpc was completed") // ErrUnrecognizedPacket is returned if the packet type was not recognized. ErrUnrecognizedPacket = errors.New("unrecognized packet type") // ErrEmptyPacket is returned if nothing is specified in a packet. ErrEmptyPacket = errors.New("invalid empty packet") // ErrInvalidMessage indicates the message failed to parse. ErrInvalidMessage = errors.New("invalid message") // ErrEmptyMethodID is returned if the method id was empty. ErrEmptyMethodID = errors.New("method id empty") // ErrEmptyServiceID is returned if the service id was empty. ErrEmptyServiceID = errors.New("service id empty") // ErrNoAvailableClients is returned if no clients were available. ErrNoAvailableClients = errors.New("no available rpc clients") // ErrNilWriter is returned if the rpc writer is nil. ErrNilWriter = errors.New("writer cannot be nil") )
var ( TerminalKind_name = map[int32]string{ 0: "TERMINAL_KIND_UNSPECIFIED", 1: "TERMINAL_KIND_COMMITTED", 2: "TERMINAL_KIND_CANCELED", 3: "TERMINAL_KIND_TRANSPORT_LOST", 4: "TERMINAL_KIND_CLOSED", 5: "TERMINAL_KIND_ABANDONED", } TerminalKind_value = map[string]int32{ "TERMINAL_KIND_UNSPECIFIED": 0, "TERMINAL_KIND_COMMITTED": 1, "TERMINAL_KIND_CANCELED": 2, "TERMINAL_KIND_TRANSPORT_LOST": 3, "TERMINAL_KIND_CLOSED": 4, "TERMINAL_KIND_ABANDONED": 5, } )
Enum value maps for TerminalKind.
Functions ¶
func AcceptMuxedListener ¶ added in v0.8.3
func AcceptMuxedListener(ctx context.Context, lis net.Listener, srv *Server, yamuxConf *yamux.Config) error
AcceptMuxedListener accepts incoming connections from a net.Listener.
Uses the default yamux muxer. If yamux conf is nil, uses the defaults.
func CheckStripPrefix ¶ added in v0.12.0
CheckStripPrefix checks if the string has any of the given prefixes and strips the matched prefix if any.
if len(matchPrefixes) == 0 returns the ID without changing it.
func Listen ¶ added in v0.18.1
Listen listens for incoming connections with TCP on the given address with the default muxed conn type. Returns on any fatal error or if ctx was canceled. errCh is an optional error channel (can be nil)
func NewPipeStream ¶
NewPipeStream constructs a new in-memory stream.
func NewYamuxConfig ¶ added in v0.13.0
NewYamuxConfig returns a fresh copy of the default yamux configuration.
Types ¶
type CallData ¶
type CallData struct {
// Data contains the packet in the sequence.
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
// DataIsZero indicates Data is set with an empty message.
DataIsZero bool `protobuf:"varint,2,opt,name=data_is_zero,json=dataIsZero,proto3" json:"dataIsZero,omitempty"`
// Complete indicates the RPC call is completed.
Complete bool `protobuf:"varint,3,opt,name=complete,proto3" json:"complete,omitempty"`
// Error contains any error that caused the RPC to fail.
// If set, implies complete=true.
Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
// contains filtered or unexported fields
}
CallData contains a message in a streaming RPC sequence.
func (*CallData) CloneMessageVT ¶ added in v0.18.3
func (m *CallData) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*CallData) EqualMessageVT ¶ added in v0.18.3
func (*CallData) GetComplete ¶
func (*CallData) GetDataIsZero ¶ added in v0.1.8
func (*CallData) MarshalJSON ¶ added in v0.30.0
MarshalJSON marshals the CallData to JSON.
func (*CallData) MarshalProtoJSON ¶ added in v0.30.0
func (x *CallData) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the CallData message to JSON.
func (*CallData) MarshalProtoText ¶ added in v0.31.4
func (*CallData) MarshalToSizedBufferVT ¶
func (*CallData) ProtoMessage ¶
func (*CallData) ProtoMessage()
func (*CallData) UnmarshalJSON ¶ added in v0.30.1
UnmarshalJSON unmarshals the CallData from JSON.
func (*CallData) UnmarshalProtoJSON ¶ added in v0.30.1
func (x *CallData) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the CallData message from JSON.
func (*CallData) UnmarshalVT ¶
type CallReceipt ¶ added in v0.49.20
type CallReceipt struct {
// contains filtered or unexported fields
}
CallReceipt holds a unary call until the server finalizes it.
func ExecCallReceipt ¶ added in v0.49.20
func ExecCallReceipt( ctx context.Context, cc Client, service, method string, in, out Message, ) (*CallReceipt, error)
ExecCallReceipt executes a unary call over cc.NewStream, reads the single response into out, and returns a held receipt. The caller must dispose it with Commit, Abort, or Close.
func (*CallReceipt) Abort ¶ added in v0.49.20
func (r *CallReceipt) Abort() error
Abort sends request cancellation and releases the stream.
func (*CallReceipt) Close ¶ added in v0.49.20
func (r *CallReceipt) Close() error
Close aborts the held call unless it has already reached a terminal.
func (*CallReceipt) Commit ¶ added in v0.49.20
func (r *CallReceipt) Commit() error
Commit sends request completion and waits for the server completion acknowledgment before releasing the stream.
func (*CallReceipt) Context ¶ added in v0.49.20
func (r *CallReceipt) Context() context.Context
Context returns the context of the held call.
type CallStart ¶
type CallStart struct {
// RpcService is the service to contact.
// Must be set.
RpcService string `protobuf:"bytes,1,opt,name=rpc_service,json=rpcService,proto3" json:"rpcService,omitempty"`
// RpcMethod is the RPC method to call.
// Must be set.
RpcMethod string `protobuf:"bytes,2,opt,name=rpc_method,json=rpcMethod,proto3" json:"rpcMethod,omitempty"`
// Data contains the request or the first message in the stream.
// Optional if streaming.
Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
// DataIsZero indicates Data is set with an empty message.
DataIsZero bool `protobuf:"varint,4,opt,name=data_is_zero,json=dataIsZero,proto3" json:"dataIsZero,omitempty"`
// contains filtered or unexported fields
}
CallStart requests starting a new RPC call.
func (*CallStart) CloneMessageVT ¶ added in v0.18.3
func (m *CallStart) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*CallStart) EqualMessageVT ¶ added in v0.18.3
func (*CallStart) GetDataIsZero ¶ added in v0.1.8
func (*CallStart) GetRpcMethod ¶
func (*CallStart) GetRpcService ¶
func (*CallStart) MarshalJSON ¶ added in v0.30.0
MarshalJSON marshals the CallStart to JSON.
func (*CallStart) MarshalProtoJSON ¶ added in v0.30.0
func (x *CallStart) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the CallStart message to JSON.
func (*CallStart) MarshalProtoText ¶ added in v0.31.4
func (*CallStart) MarshalToSizedBufferVT ¶
func (*CallStart) ProtoMessage ¶
func (*CallStart) ProtoMessage()
func (*CallStart) UnmarshalJSON ¶ added in v0.30.1
UnmarshalJSON unmarshals the CallStart from JSON.
func (*CallStart) UnmarshalProtoJSON ¶ added in v0.30.1
func (x *CallStart) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the CallStart message from JSON.
func (*CallStart) UnmarshalVT ¶
type Client ¶
type Client interface {
// ExecCall executes a request/reply RPC with the remote.
ExecCall(ctx context.Context, service, method string, in, out Message) error
// NewStream starts a streaming RPC with the remote & returns the stream.
// firstMsg is optional.
NewStream(ctx context.Context, service, method string, firstMsg Message) (Stream, error)
}
Client implements a SRPC client which can initiate RPC streams.
func NewClient ¶
func NewClient(openStream OpenStreamFunc) Client
NewClient constructs a client with a OpenStreamFunc.
func NewClientWithConn ¶ added in v0.8.2
NewClientWithConn constructs the muxer and the client.
if yamuxConf is nil, uses defaults.
func NewClientWithMuxedConn ¶ added in v0.3.6
NewClientWithMuxedConn constructs a new client with a MuxedConn.
type ClientInvoker ¶ added in v0.41.2
type ClientInvoker struct {
// contains filtered or unexported fields
}
ClientInvoker wraps a Client to implement the Invoker interface. It proxies incoming RPC calls to the remote via the client.
func NewClientInvoker ¶ added in v0.41.2
func NewClientInvoker(client Client) *ClientInvoker
NewClientInvoker creates a new ClientInvoker.
func (*ClientInvoker) InvokeMethod ¶ added in v0.41.2
func (c *ClientInvoker) InvokeMethod(serviceID, methodID string, strm Stream) (bool, error)
InvokeMethod invokes the method by proxying to the remote via the client. Returns false, nil if the client is nil.
type ClientRPC ¶
type ClientRPC struct {
// contains filtered or unexported fields
}
ClientRPC represents the client side of an on-going RPC call message stream.
func NewClientRPC ¶
NewClientRPC constructs a new ClientRPC session and writes CallStart. the writer will be closed when the ClientRPC completes. service and method must be specified. must call Start after creating the RPC object.
func (*ClientRPC) Close ¶
func (r *ClientRPC) Close()
Close releases any resources held by the ClientRPC.
func (*ClientRPC) HandleCallCancel ¶ added in v0.15.0
func (c *ClientRPC) HandleCallCancel() error
HandleCallCancel handles the call cancel packet.
func (*ClientRPC) HandleCallData ¶
HandleCallData handles the call data packet.
func (*ClientRPC) HandleCallStart ¶
HandleCallStart handles the call start packet.
func (*ClientRPC) HandlePacket ¶
HandlePacket handles an incoming parsed message packet.
func (*ClientRPC) HandlePacketData ¶
HandlePacketData handles an incoming unparsed message packet.
func (*ClientRPC) HandleStreamClose ¶ added in v0.8.0
HandleStreamClose handles the stream closing optionally w/ an error.
func (*ClientRPC) ReadOne ¶ added in v0.8.5
ReadOne reads a single message and returns.
returns io.EOF if the stream ended without a packet.
func (*ClientRPC) Start ¶
func (r *ClientRPC) Start(writer PacketWriter, writeFirstMsg bool, firstMsg []byte) error
Start sets the writer and writes the MsgSend message. must only be called once!
func (*ClientRPC) Wait ¶ added in v0.15.0
Wait waits for the RPC to finish (remote end closed the stream).
func (*ClientRPC) WaitTerminal ¶ added in v0.49.20
func (c *ClientRPC) WaitTerminal(ownerCtx context.Context) (TerminalKind, error)
WaitTerminal waits for and classifies the remote terminal of a held unary invocation.
func (*ClientRPC) WriteCallCancel ¶ added in v0.33.6
func (c *ClientRPC) WriteCallCancel() error
WriteCallCancel writes a call cancel packet.
type ClientSet ¶ added in v0.12.2
type ClientSet struct {
// contains filtered or unexported fields
}
ClientSet wraps a list of clients into one Client.
func NewClientSet ¶ added in v0.12.2
NewClientSet constructs a new client set.
type CloseHandler ¶ added in v0.8.0
type CloseHandler = func(closeErr error)
CloseHandler handles the stream closing with an optional error.
type HTTPServer ¶
type HTTPServer struct {
// contains filtered or unexported fields
}
HTTPServer implements the SRPC HTTP/WebSocket server.
NOTE: accepting websocket connections is stubbed out on GOOS=js!
func NewHTTPServer ¶
func NewHTTPServer(mux Mux, path string, acceptOpts *websocket.AcceptOptions) (*HTTPServer, error)
NewHTTPServer builds a http server / handler. if path is empty, serves on all routes.
func (*HTTPServer) ServeHTTP ¶
func (s *HTTPServer) ServeHTTP(w http.ResponseWriter, r *http.Request)
type Handler ¶
type Handler interface {
// Invoker invokes the methods.
Invoker
// GetServiceID returns the ID of the service.
GetServiceID() string
// GetMethodIDs returns the list of methods for the service.
GetMethodIDs() []string
}
Handler describes a SRPC call handler implementation.
type Invoker ¶ added in v0.10.7
type Invoker interface {
// InvokeMethod invokes the method matching the service & method ID.
// Returns false, nil if not found.
// If service string is empty, ignore it.
InvokeMethod(serviceID, methodID string, strm Stream) (bool, error)
}
Invoker is a function for invoking SRPC service methods.
type InvokerFunc ¶ added in v0.22.5
InvokerFunc is a function implementing InvokeMethod.
func (InvokerFunc) InvokeMethod ¶ added in v0.22.5
func (f InvokerFunc) InvokeMethod(serviceID, methodID string, strm Stream) (bool, error)
InvokeMethod invokes the method matching the service & method ID. Returns false, nil if not found. If service string is empty, ignore it.
type InvokerSlice ¶ added in v0.15.2
type InvokerSlice []Invoker
InvokerSlice is a list of invokers.
func (InvokerSlice) InvokeMethod ¶ added in v0.15.2
func (s InvokerSlice) InvokeMethod(serviceID, methodID string, strm Stream) (bool, error)
InvokeMethod invokes the method matching the service & method ID. Returns false, nil if not found. If service string is empty, ignore it.
type MsgStream ¶ added in v0.4.0
type MsgStream struct {
// contains filtered or unexported fields
}
MsgStream implements the stream interface passed to implementations.
func NewMsgStream ¶ added in v0.4.0
func NewMsgStream( ctx context.Context, rw MsgStreamRw, closeCb func(), ) *MsgStream
NewMsgStream constructs a new Stream with a ClientRPC. dataCh should be closed when no more messages will arrive.
func (*MsgStream) CloseSend ¶ added in v0.4.0
CloseSend signals to the remote that we will no longer send any messages.
type MsgStreamRw ¶ added in v0.15.0
type MsgStreamRw interface {
// ReadOne reads a single message and returns.
//
// returns io.EOF if the stream ended.
ReadOne() ([]byte, error)
// WriteCallData writes a call data packet.
WriteCallData(data []byte, dataIsZero bool, complete bool, err error) error
// WriteCallCancel writes a call cancel (close) packet.
WriteCallCancel() error
}
MsgStreamRw is the read-write interface for MsgStream.
type Mux ¶
type Mux interface {
// Invoker invokes the methods.
Invoker
// QueryableInvoker checks if a method is implemented.
QueryableInvoker
// Register registers a new RPC method handler (service).
Register(handler Handler) error
}
Mux contains a set of <service, method> handlers.
type MuxedConn ¶ added in v0.47.0
type MuxedConn interface {
io.Closer
// IsClosed returns whether a connection is fully closed.
IsClosed() bool
// OpenStream creates a new stream.
OpenStream(context.Context) (MuxedStream, error)
// AcceptStream accepts a stream opened by the other side.
AcceptStream() (MuxedStream, error)
}
MuxedConn represents a connection which has been multiplexed.
func NewMuxedConn ¶ added in v0.8.2
NewMuxedConn constructs a new MuxedConn from a net.Conn.
If yamuxConf is nil, uses defaults.
type MuxedStream ¶ added in v0.47.0
type MuxedStream interface {
io.Reader
io.Writer
io.Closer
// CloseWrite closes the stream for writing but leaves it open for reading.
CloseWrite() error
// CloseRead closes the stream for reading but leaves it open for writing.
CloseRead() error
// Reset closes both ends of the stream, telling the remote side to hang up.
Reset() error
// SetDeadline sets the read and write deadlines.
SetDeadline(time.Time) error
// SetReadDeadline sets the read deadline.
SetReadDeadline(time.Time) error
// SetWriteDeadline sets the write deadline.
SetWriteDeadline(time.Time) error
}
MuxedStream is a bidirectional io pipe within a connection.
type OpenStreamFunc ¶
type OpenStreamFunc = func( ctx context.Context, msgHandler PacketDataHandler, closeHandler CloseHandler, ) (PacketWriter, error)
OpenStreamFunc opens a stream with a remote. msgHandler must not be called concurrently.
func NewOpenStreamWithMuxedConn ¶ added in v0.3.6
func NewOpenStreamWithMuxedConn(conn MuxedConn) OpenStreamFunc
NewOpenStreamWithMuxedConn constructs a OpenStream func with a MuxedConn.
func NewServerPipe ¶
func NewServerPipe(server *Server) OpenStreamFunc
NewServerPipe constructs a open stream func which creates an in-memory Pipe Stream with the given Server. Starts read pumps for both. Starts the HandleStream function on the server in a separate goroutine.
type Packet ¶
type Packet struct {
// Body is the packet body.
//
// Types that are assignable to Body:
//
// *Packet_CallStart
// *Packet_CallData
// *Packet_CallCancel
Body isPacket_Body `protobuf_oneof:"body"`
// contains filtered or unexported fields
}
Packet is a message sent over a srpc packet connection.
func NewCallCancelPacket ¶ added in v0.14.0
func NewCallCancelPacket() *Packet
NewCallCancelPacket constructs a new CallCancel packet with cancel.
func NewCallDataPacket ¶
NewCallDataPacket constructs a new CallData packet.
func NewCallStartPacket ¶
NewCallStartPacket constructs a new CallStart packet.
func (*Packet) CloneMessageVT ¶ added in v0.18.3
func (m *Packet) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Packet) EqualMessageVT ¶ added in v0.18.3
func (*Packet) GetCallCancel ¶ added in v0.14.0
func (*Packet) GetCallData ¶
func (*Packet) GetCallStart ¶
func (*Packet) MarshalJSON ¶ added in v0.30.0
MarshalJSON marshals the Packet to JSON.
func (*Packet) MarshalProtoJSON ¶ added in v0.30.0
func (x *Packet) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Packet message to JSON.
func (*Packet) MarshalProtoText ¶ added in v0.31.4
func (*Packet) MarshalToSizedBufferVT ¶
func (*Packet) ProtoMessage ¶
func (*Packet) ProtoMessage()
func (*Packet) UnmarshalJSON ¶ added in v0.30.1
UnmarshalJSON unmarshals the Packet from JSON.
func (*Packet) UnmarshalProtoJSON ¶ added in v0.30.1
func (x *Packet) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Packet message from JSON.
func (*Packet) UnmarshalVT ¶
type PacketDataHandler ¶ added in v0.19.0
PacketDataHandler handles a packet before it is parsed.
func NewPacketDataHandler ¶ added in v0.19.0
func NewPacketDataHandler(handler PacketHandler) PacketDataHandler
NewPacketDataHandler wraps a PacketHandler with a decoding step.
type PacketHandler ¶
PacketHandler handles a packet.
pkt is optional (can be nil) if closeErr is set, the stream is closed after pkt.
type PacketReadWriter ¶ added in v0.19.0
type PacketReadWriter struct {
// contains filtered or unexported fields
}
PacketReadWriter reads and writes packets from a io.ReadWriter. Uses a LittleEndian uint32 length prefix.
func NewPacketReadWriter ¶
func NewPacketReadWriter(rw io.ReadWriteCloser) *PacketReadWriter
NewPacketReadWriter constructs a new read/writer.
func (*PacketReadWriter) Close ¶ added in v0.19.0
func (r *PacketReadWriter) Close() error
Close closes the packet rw.
func (*PacketReadWriter) ReadPump ¶ added in v0.19.0
func (r *PacketReadWriter) ReadPump(cb PacketDataHandler, closed CloseHandler)
ReadPump executes the read pump in a goroutine.
calls the handler when closed or returning an error
func (*PacketReadWriter) ReadToHandler ¶ added in v0.19.0
func (r *PacketReadWriter) ReadToHandler(cb PacketDataHandler) error
ReadToHandler reads data to the given handler. Does not handle closing the stream, use ReadPump instead.
func (*PacketReadWriter) Write ¶ added in v0.19.0
func (r *PacketReadWriter) Write(p []byte) (n int, err error)
Write writes raw data to the remote.
func (*PacketReadWriter) WritePacket ¶ added in v0.19.0
func (r *PacketReadWriter) WritePacket(p *Packet) error
WritePacket writes a packet to the writer.
type PacketWriter ¶ added in v0.26.0
type PacketWriter interface {
// WritePacket writes a packet to the remote.
WritePacket(p *Packet) error
// Close closes the writer.
Close() error
}
PacketWriter is the interface used to write messages to a PacketStream.
func NewPacketWriterWithClose ¶ added in v0.27.2
func NewPacketWriterWithClose(prw PacketWriter, close func() error) PacketWriter
NewPacketWriterWithClose wraps a PacketWriter with a close function to call when Close is called.
type Packet_CallCancel ¶ added in v0.14.0
type Packet_CallCancel struct {
// CallCancel cancels the call.
CallCancel bool `protobuf:"varint,3,opt,name=call_cancel,json=callCancel,proto3,oneof"`
}
func (*Packet_CallCancel) CloneOneofVT ¶ added in v0.31.13
func (m *Packet_CallCancel) CloneOneofVT() isPacket_Body
func (*Packet_CallCancel) CloneVT ¶ added in v0.14.0
func (m *Packet_CallCancel) CloneVT() *Packet_CallCancel
func (*Packet_CallCancel) EqualVT ¶ added in v0.14.0
func (this *Packet_CallCancel) EqualVT(thatIface isPacket_Body) bool
func (*Packet_CallCancel) MarshalToSizedBufferVT ¶ added in v0.14.0
func (m *Packet_CallCancel) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*Packet_CallCancel) MarshalToVT ¶ added in v0.14.0
func (m *Packet_CallCancel) MarshalToVT(dAtA []byte) (int, error)
func (*Packet_CallCancel) SizeVT ¶ added in v0.14.0
func (m *Packet_CallCancel) SizeVT() (n int)
type Packet_CallData ¶
type Packet_CallData struct {
// CallData is a message in a streaming RPC sequence.
CallData *CallData `protobuf:"bytes,2,opt,name=call_data,json=callData,proto3,oneof"`
}
func (*Packet_CallData) CloneOneofVT ¶ added in v0.31.13
func (m *Packet_CallData) CloneOneofVT() isPacket_Body
func (*Packet_CallData) CloneVT ¶ added in v0.12.3
func (m *Packet_CallData) CloneVT() *Packet_CallData
func (*Packet_CallData) EqualVT ¶ added in v0.10.0
func (this *Packet_CallData) EqualVT(thatIface isPacket_Body) bool
func (*Packet_CallData) MarshalToSizedBufferVT ¶
func (m *Packet_CallData) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*Packet_CallData) MarshalToVT ¶
func (m *Packet_CallData) MarshalToVT(dAtA []byte) (int, error)
func (*Packet_CallData) SizeVT ¶
func (m *Packet_CallData) SizeVT() (n int)
type Packet_CallStart ¶
type Packet_CallStart struct {
// CallStart initiates a new call.
CallStart *CallStart `protobuf:"bytes,1,opt,name=call_start,json=callStart,proto3,oneof"`
}
func (*Packet_CallStart) CloneOneofVT ¶ added in v0.31.13
func (m *Packet_CallStart) CloneOneofVT() isPacket_Body
func (*Packet_CallStart) CloneVT ¶ added in v0.12.3
func (m *Packet_CallStart) CloneVT() *Packet_CallStart
func (*Packet_CallStart) EqualVT ¶ added in v0.10.0
func (this *Packet_CallStart) EqualVT(thatIface isPacket_Body) bool
func (*Packet_CallStart) MarshalToSizedBufferVT ¶
func (m *Packet_CallStart) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*Packet_CallStart) MarshalToVT ¶
func (m *Packet_CallStart) MarshalToVT(dAtA []byte) (int, error)
func (*Packet_CallStart) SizeVT ¶
func (m *Packet_CallStart) SizeVT() (n int)
type PrefixClient ¶ added in v0.12.0
type PrefixClient struct {
// contains filtered or unexported fields
}
PrefixClient checks for and strips a set of prefixes from a Client.
func NewPrefixClient ¶ added in v0.12.0
func NewPrefixClient(client Client, serviceIDPrefixes []string) *PrefixClient
NewPrefixClient constructs a new PrefixClient.
serviceIDPrefixes is the list of service id prefixes to match. strips the prefix before calling the underlying Invoke function. if none of the prefixes match, returns unimplemented. if empty: forwards all services w/o stripping any prefix.
type PrefixInvoker ¶ added in v0.11.3
type PrefixInvoker struct {
// contains filtered or unexported fields
}
PrefixInvoker checks for and strips a set of prefixes from a Invoker.
func NewPrefixInvoker ¶ added in v0.11.3
func NewPrefixInvoker(inv Invoker, serviceIDPrefixes []string) *PrefixInvoker
NewPrefixInvoker constructs a new PrefixInvoker.
serviceIDPrefixes is the list of service id prefixes to match. strips the prefix before calling the underlying Invoke function. if none of the prefixes match, returns unimplemented. if empty: forwards all services w/o stripping any prefix.
func (*PrefixInvoker) InvokeMethod ¶ added in v0.11.3
func (i *PrefixInvoker) InvokeMethod(serviceID, methodID string, strm Stream) (bool, error)
InvokeMethod invokes the method matching the service & method ID. Returns false, nil if not found. If service string is empty, ignore it.
type QueryableInvoker ¶ added in v0.39.10
type QueryableInvoker interface {
// HasService checks if the service ID exists in the handlers.
HasService(serviceID string) bool
// HasServiceMethod checks if <service-id, method-id> exists in the handlers.
HasServiceMethod(serviceID, methodID string) bool
}
QueryableInvoker can be used to check if a service and method is implemented.
type RawMessage ¶ added in v0.15.2
type RawMessage struct {
// contains filtered or unexported fields
}
RawMessage is a raw protobuf message container.
The empty value is valid with copy=false.
func NewRawMessage ¶ added in v0.15.2
func NewRawMessage(data []byte, copy bool) *RawMessage
NewRawMessage constructs a new raw message. If copy=true, copies data in MarshalVT. Note: the data buffer will be retained and used. The data buffer will be written to and/or replaced in UnmarshalVT.
func (*RawMessage) Clear ¶ added in v0.19.0
func (m *RawMessage) Clear()
Clear sets the length of the data buffer to 0 without releasing it.
func (*RawMessage) GetData ¶ added in v0.15.2
func (m *RawMessage) GetData() []byte
GetData returns the data buffer without copying.
func (*RawMessage) MarshalToSizedBufferVT ¶ added in v0.32.7
func (m *RawMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error)
MarshalToSizedBufferVT marshals to a buffer that already is SizeVT bytes long.
func (*RawMessage) MarshalVT ¶ added in v0.15.2
func (m *RawMessage) MarshalVT() ([]byte, error)
func (*RawMessage) Reset ¶ added in v0.19.0
func (m *RawMessage) Reset()
Reset releases the data buffer.
func (*RawMessage) SetData ¶ added in v0.15.2
func (m *RawMessage) SetData(data []byte)
SetData sets the data buffer. if copy=true, copies the data to the internal slice. otherwise retains the buffer.
func (*RawMessage) SizeVT ¶ added in v0.32.7
func (m *RawMessage) SizeVT() int
SizeVT returns the size of the message when marshaled.
func (*RawMessage) UnmarshalVT ¶ added in v0.15.2
func (m *RawMessage) UnmarshalVT(data []byte) error
type RwcConn ¶ added in v0.10.8
type RwcConn struct {
// contains filtered or unexported fields
}
RwcConn implements a net.Conn with a buffered ReadWriteCloser.
func NewRwcConn ¶ added in v0.10.8
func NewRwcConn( ctx context.Context, rwc io.ReadWriteCloser, laddr, raddr net.Addr, bufferPacketN int, ) *RwcConn
NewRwcConn constructs a new RwcConn and starts the rx pump.
func (*RwcConn) Close ¶ added in v0.10.8
Close closes the connection. Any blocked Read or Write operations will be unblocked and return errors.
func (*RwcConn) Read ¶ added in v0.10.8
Read reads data from the connection. Read can be made to time out and return an error after a fixed time limit; see SetDeadline and SetReadDeadline.
func (*RwcConn) RemoteAddr ¶ added in v0.10.8
RemoteAddr returns the bound remote network address.
func (*RwcConn) SetDeadline ¶ added in v0.10.8
SetDeadline sets the read and write deadlines associated with the connection. It is equivalent to calling both SetReadDeadline and SetWriteDeadline.
A zero value for t means I/O operations will not time out.
func (*RwcConn) SetReadDeadline ¶ added in v0.10.8
SetReadDeadline sets the deadline for future Read calls and any currently-blocked Read call. A zero value for t means Read will not time out.
func (*RwcConn) SetWriteDeadline ¶ added in v0.10.8
SetWriteDeadline sets the deadline for future Write calls and any currently-blocked Write call. A zero value for t means Write will not time out.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server handles incoming RPC streams with a mux.
func (*Server) AcceptMuxedConn ¶ added in v0.3.5
AcceptMuxedConn runs a loop which calls Accept on a muxer to handle streams.
Starts HandleStream in a separate goroutine to handle the stream. Returns context.Canceled or io.EOF when the loop is complete / closed.
func (*Server) GetInvoker ¶ added in v0.10.7
GetInvoker returns the invoker.
func (*Server) HandleStream ¶ added in v0.3.5
func (s *Server) HandleStream(ctx context.Context, rwc io.ReadWriteCloser)
HandleStream handles an incoming stream and runs the read loop. Uses length-prefixed packets.
type ServerInvocation ¶ added in v0.49.20
type ServerInvocation interface {
// WaitTerminal waits for a remote terminal or owner-context expiry. The
// owner context must outlive the invocation context.
WaitTerminal(ownerCtx context.Context) (TerminalKind, error)
// Done returns the invocation context cancellation channel for diagnostics.
Done() <-chan struct{}
}
ServerInvocation exposes the terminal of a held unary server invocation.
func GetServerInvocation ¶ added in v0.49.20
func GetServerInvocation(ctx context.Context) (ServerInvocation, bool)
GetServerInvocation returns the held unary invocation attached to a context.
type ServerRPC ¶
type ServerRPC struct {
// contains filtered or unexported fields
}
ServerRPC represents the server side of an on-going RPC call message stream.
func NewServerRPC ¶
func NewServerRPC(ctx context.Context, invoker Invoker, writer PacketWriter) *ServerRPC
NewServerRPC constructs a new ServerRPC session. note: call SetWriter before handling any incoming messages.
func (*ServerRPC) Done ¶ added in v0.49.20
func (r *ServerRPC) Done() <-chan struct{}
Done returns the invocation context cancellation channel for diagnostics.
func (*ServerRPC) HandleCallCancel ¶ added in v0.15.0
func (c *ServerRPC) HandleCallCancel() error
HandleCallCancel handles the call cancel packet.
func (*ServerRPC) HandleCallData ¶
HandleCallData handles the call data packet.
func (*ServerRPC) HandleCallStart ¶
HandleCallStart handles the call start packet.
func (*ServerRPC) HandlePacket ¶
HandlePacket handles an incoming parsed message packet.
func (*ServerRPC) HandlePacketData ¶ added in v0.19.0
HandlePacketData handles an incoming unparsed message packet.
func (*ServerRPC) HandleStreamClose ¶ added in v0.8.0
func (c *ServerRPC) HandleStreamClose(closeErr error)
HandleStreamClose handles the incoming stream closing w/ optional error.
func (*ServerRPC) ReadOne ¶ added in v0.15.0
ReadOne reads a single message and returns.
returns io.EOF if the stream ended without a packet.
func (*ServerRPC) Wait ¶ added in v0.8.0
Wait waits for the RPC to finish (remote end closed the stream).
func (*ServerRPC) WaitTerminal ¶ added in v0.49.20
func (r *ServerRPC) WaitTerminal(ownerCtx context.Context) (TerminalKind, error)
WaitTerminal waits for and classifies the terminal of a held unary invocation.
func (*ServerRPC) WriteCallCancel ¶ added in v0.33.6
func (c *ServerRPC) WriteCallCancel() error
WriteCallCancel writes a call cancel packet.
type Stream ¶
type Stream interface {
// Context is canceled when the Stream is no longer valid.
Context() context.Context
// MsgSend sends the message to the remote.
MsgSend(msg Message) error
// MsgRecv receives an incoming message from the remote.
// Parses the message into the object at msg.
MsgRecv(msg Message) error
// CloseSend signals to the remote that we will no longer send any messages.
CloseSend() error
// Close closes the stream for reading and writing.
Close() error
}
Stream is a handle to an on-going bi-directional or one-directional stream RPC handle.
func NewStreamWithClose ¶ added in v0.27.1
NewStreamWithClose wraps a Stream with a close function to call when Close is called.
type StreamRecv ¶ added in v0.26.2
StreamRecv is a stream that can receive typed messages.
T is the response type.
type StreamRwc ¶ added in v0.19.0
type StreamRwc struct {
// Stream is the base stream interface.
Stream
// contains filtered or unexported fields
}
StreamRwc implements an io.ReadWriteCloser with a srpc.Stream.
func NewStreamRwc ¶ added in v0.19.0
NewStreamRwc constructs a new stream read write closer.
type StreamSend ¶ added in v0.26.2
StreamSend is a stream that can send typed messages.
T is the outgoing type.
type StreamSendAndClose ¶ added in v0.26.2
type StreamSendAndClose[T any] interface { StreamSend[T] SendAndClose(T) error }
StreamSendAndClose is a stream that can send typed messages, closing after.
T is the outgoing type.
type TerminalKind ¶ added in v0.49.20
type TerminalKind int32
TerminalKind is the terminal state of a held unary invocation.
const ( // TERMINAL_KIND_UNSPECIFIED is not a valid terminal state. TerminalKind_TERMINAL_KIND_UNSPECIFIED TerminalKind = 0 // TERMINAL_KIND_COMMITTED identifies an explicit remote CallData completion. TerminalKind_TERMINAL_KIND_COMMITTED TerminalKind = 1 // TERMINAL_KIND_CANCELED identifies a remote CallCancel packet. TerminalKind_TERMINAL_KIND_CANCELED TerminalKind = 2 // TERMINAL_KIND_TRANSPORT_LOST identifies a remote error or transport failure. TerminalKind_TERMINAL_KIND_TRANSPORT_LOST TerminalKind = 3 // TERMINAL_KIND_CLOSED identifies a bare remote close without completion. TerminalKind_TERMINAL_KIND_CLOSED TerminalKind = 4 // TERMINAL_KIND_ABANDONED identifies owner-context expiry without a remote terminal. TerminalKind_TERMINAL_KIND_ABANDONED TerminalKind = 5 )
func (TerminalKind) Enum ¶ added in v0.49.21
func (x TerminalKind) Enum() *TerminalKind
func (TerminalKind) MarshalJSON ¶ added in v0.49.21
func (x TerminalKind) MarshalJSON() ([]byte, error)
MarshalJSON marshals the TerminalKind to JSON.
func (TerminalKind) MarshalProtoJSON ¶ added in v0.49.21
func (x TerminalKind) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the TerminalKind to JSON.
func (TerminalKind) MarshalProtoText ¶ added in v0.49.21
func (x TerminalKind) MarshalProtoText() string
func (TerminalKind) MarshalText ¶ added in v0.49.21
func (x TerminalKind) MarshalText() ([]byte, error)
MarshalText marshals the TerminalKind to text.
func (TerminalKind) String ¶ added in v0.49.21
func (x TerminalKind) String() string
func (*TerminalKind) UnmarshalJSON ¶ added in v0.49.21
func (x *TerminalKind) UnmarshalJSON(b []byte) error
UnmarshalJSON unmarshals the TerminalKind from JSON.
func (*TerminalKind) UnmarshalProtoJSON ¶ added in v0.49.21
func (x *TerminalKind) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the TerminalKind from JSON.
func (*TerminalKind) UnmarshalText ¶ added in v0.49.21
func (x *TerminalKind) UnmarshalText(b []byte) error
UnmarshalText unmarshals the TerminalKind from text.
type VClient ¶ added in v0.21.0
type VClient struct {
// contains filtered or unexported fields
}
VClient implements a verbose SRPC client which can log RPC streams.
func NewVClient ¶ added in v0.21.0
NewVClient constructs a new verbose client wrapper.
type VMux ¶ added in v0.21.0
type VMux struct {
// contains filtered or unexported fields
}
VMux implements a verbose logging wrapper for a Mux.
func NewVMux ¶ added in v0.21.0
NewVMux constructs a verbose logging wrapper for a Mux.
if veryVerbose is set, we also log very chatty logs: HasService, HasServiceMethod, Register
func (*VMux) HasService ¶ added in v0.21.0
HasService checks if the service ID exists in the handlers.
func (*VMux) HasServiceMethod ¶ added in v0.21.0
HasServiceMethod checks if <service-id, method-id> exists in the handlers.
func (*VMux) InvokeMethod ¶ added in v0.21.0
InvokeMethod invokes the method matching the service & method ID. Returns false, nil if not found. If service string is empty, ignore it.
Source Files
¶
- accept.go
- call-receipt.go
- client-invoker.go
- client-prefix.go
- client-rpc.go
- client-set.go
- client-verbose.go
- client.go
- common-rpc.go
- errors.go
- handler.go
- invoker-prefix.go
- invoker.go
- message.go
- msg-stream.go
- mux-verbose.go
- mux.go
- muxed-conn.go
- muxed-yamux.go
- muxed.go
- net.go
- packet-rw.go
- packet.go
- rpcproto.pb.go
- rwc-conn.go
- server-http.go
- server-invocation.go
- server-pipe.go
- server-rpc-invoke.go
- server-rpc.go
- server.go
- stream-pipe.go
- stream-rwc.go
- stream-yamux.go
- stream.go
- strip-prefix.go
- websocket.go
- writer.go