Package codec is an interface for encoding messages



This section is empty.


View Source
var (
	ErrInvalidMessage = errors.New("invalid message")


This section is empty.


type Codec

type Codec interface {
	Close() error
	String() string

Codec encodes/decodes various types of messages used within go-micro. ReadHeader and ReadBody are called in pairs to read requests/responses from the connection. Close is called when finished with the connection. ReadBody may be called with a nil argument to force the body to be read and discarded.

type Marshaler

type Marshaler interface {
	Marshal(interface{}) ([]byte, error)
	Unmarshal([]byte, interface{}) error
	String() string

Marshaler is a simple encoding interface used for the broker/transport where headers are not supported by the underlying implementation.

type Message

type Message struct {
	Id       string
	Type     MessageType
	Target   string
	Method   string
	Endpoint string
	Error    string

	// The values read from the socket
	Header map[string]string
	Body   []byte

Message represents detailed information about the communication, likely followed by the body. In the case of an error, body may be nil.

type MessageType

type MessageType int
const (
	Error MessageType = iota

type NewCodec

type NewCodec func(io.ReadWriteCloser) Codec

Takes in a connection/buffer and returns a new Codec

type Reader

type Reader interface {
	ReadHeader(*Message, MessageType) error
	ReadBody(interface{}) error

type Writer

type Writer interface {
	Write(*Message, interface{}) error

Source Files


Path Synopsis
bytes Package bytes provides a bytes codec which does not encode or decode anything
grpc Package grpc provides a grpc codec
json Package json provides a json codec
jsonrpc Package jsonrpc provides a json-rpc 1.0 codec
proto Package proto provides a proto codec
protorpc Protorpc provides a net/rpc proto-rpc codec.
text Package text reads any text/* content-type