Documentation ¶
Overview ¶
Package drpc is a light replacement for gprc.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Error = errs.Class("drpc") InternalError = errs.Class("internal error") ProtocolError = errs.Class("protocol error") )
These error classes represent some common errors that drpc generates.
Functions ¶
This section is empty.
Types ¶
type Conn ¶
type Conn interface { // Close closes the connection. Close() error // Transport returns the transport the connection is using. Transport() Transport // Invoke issues a unary rpc to the remote. Only one Invoke or Stream may be // open at once. Invoke(ctx context.Context, rpc string, in, out Message) error // NewStream starts a stream with the remote. Only one Invoke or Stream may be // open at once. NewStream(ctx context.Context, rpc string) (Stream, error) }
Conn represents a client connection to a server.
type Description ¶
type Description interface { // NumMethods returns the number of methods available. NumMethods() int // Method returns the information about the nth method along with a handler // to invoke it. The method interface that it returns is expected to be // a method expression like `(*Type).HandlerName`. Method(n int) (rpc string, handler Handler, method interface{}, ok bool) }
Description is the interface implemented by things that can be registered by a Server.
type Handler ¶
type Handler = func(srv interface{}, ctx context.Context, in1, in2 interface{}) (out Message, err error)
Handler is invoked by a server for a given rpc.
type Message ¶
type Message interface { Reset() String() string ProtoMessage() }
Message is a protobuf message, just here so protobuf isn't necessary to import or be exposed in the types.
type Server ¶ added in v0.0.3
type Server interface { // Server listens on the listener for drpc connections and handles them. Serve(ctx context.Context, lis net.Listener) error // Register registers a collection of rpcs to host. Register(srv interface{}, desc Description) }
Server is a drpc server for handling rpcs.
type Stream ¶
type Stream interface { // Context returns the context associated with the stream. It is canceled // when the Stream is closed and no more messages will ever be sent or // received on it. Context() context.Context // MsgSend sends the Message to the remote. MsgSend(msg Message) error // MsgRecv receives a Message from the remote. MsgRecv(msg Message) error // CloseSend signals to the remote that we will no longer send any messages. CloseSend() error // Close closes the stream. Close() error }
Stream is a bi-directional stream of messages to some other party.
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
Package drpcconn creates a drpc client connection from a transport.
|
Package drpcconn creates a drpc client connection from a transport. |
Package drpcctx has helpers to interact with context.Context.
|
Package drpcctx has helpers to interact with context.Context. |
Package drpcdebug provides helpers for debugging.
|
Package drpcdebug provides helpers for debugging. |
Package drpcerr lets one associate error codes with errors.
|
Package drpcerr lets one associate error codes with errors. |
Package drpcmanager reads packets from a transport to make streams.
|
Package drpcmanager reads packets from a transport to make streams. |
Package drpcserver allows one to execute registered rpcs.
|
Package drpcserver allows one to execute registered rpcs. |
Package drpcsignal holds a helper type to signal errors.
|
Package drpcsignal holds a helper type to signal errors. |
Package drpcstream sends protobufs using the dprc wire protocol.
|
Package drpcstream sends protobufs using the dprc wire protocol. |
Package drpcwire provides low level helpers for the drpc wire protocol.
|
Package drpcwire provides low level helpers for the drpc wire protocol. |
examples
|
|
drpc
Module
|
|
drpc_and_http
Module
|
|
grpc
Module
|
|
grpc_and_drpc
Module
|
|
opentelemetry
Module
|
|
internal
|
|
fuzz-drpcwire
Package fuzz is used to fuzz drpcwire frame parsing.
|
Package fuzz is used to fuzz drpcwire frame parsing. |
integration
Package integration holds integration tests for drpc.
|
Package integration holds integration tests for drpc. |
backcompat
Module
|
|
backcompat/newservice
Module
|
|
backcompat/newservicedefs
Module
|
|
backcompat/oldservice
Module
|
|
backcompat/oldservicedefs
Module
|
|
backcompat/servicedefs
Module
|
|
grpccompat
Module
|
|
twirpcompat
Module
|
Click to show internal directories.
Click to hide internal directories.