go-micro: github.com/micro/go-micro/codec Index | Files | Directories

package codec

import "github.com/micro/go-micro/codec"

Package codec is an interface for encoding messages

Index

Package Files

codec.go

type Codec Uses

type Codec interface {
    Reader
    Writer
    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 Uses

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 Uses

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 Uses

type MessageType int
const (
    Error MessageType = iota
    Request
    Response
    Event
)

type NewCodec Uses

type NewCodec func(io.ReadWriteCloser) Codec

Takes in a connection/buffer and returns a new Codec

type Reader Uses

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

type Writer Uses

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

Directories

PathSynopsis
bytesPackage bytes provides a bytes codec which does not encode or decode anything
grpcPackage grpc provides a grpc codec
jsonPackage json provides a json codec
jsonrpcPackage jsonrpc provides a json-rpc 1.0 codec
protoPackage proto provides a proto codec
protorpcPackage proto is a generated protocol buffer package.
textPackage text reads any text/* content-type

Package codec imports 1 packages (graph) and is imported by 162 packages. Updated 2019-08-27. Refresh now. Tools for package owners.