serialization

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 26, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewGobSerializer

func NewGobSerializer() gbus.Serializer

NewGobSerializer create a new instance of Gob

func NewMessageEncoding

func NewMessageEncoding(schemaRegistryUrls ...string) gbus.Serializer

NewMessageEncoding creates an instance of Avro and returns gbus.Serializer

func NewProtoSerializer

func NewProtoSerializer(logger logrus.FieldLogger) gbus.Serializer

NewProtoSerializer creates a new instance of Proto and returns it

Types

type Avro

type Avro struct {
	// contains filtered or unexported fields
}

Avro a serializer for GBus uses Avro

func NewAvroSerializer

func NewAvroSerializer(schemaRegistryUrls ...string) *Avro

NewAvroSerializer creates a new instance of Avro and returns it

func (*Avro) Decode

func (as *Avro) Decode(buffer []byte, schemaName string) (msg gbus.Message, err error)

Decode decodes a byte array into an object

func (*Avro) Encode

func (as *Avro) Encode(obj gbus.Message) (msg []byte, err error)

Encode encodes an object into a byte array

func (*Avro) Name

func (as *Avro) Name() string

Name implements Serializer.Name

func (*Avro) Register

func (as *Avro) Register(obj gbus.Message)

Register not really used here :(

func (*Avro) RegisterAvroMessage

func (as *Avro) RegisterAvroMessage(schemaName, namespace, schema string, obj AvroMessageGenerated, deserializer avroDeserializer) (err error)

RegisterAvroMessage registers a schema to a topic and binds it to an object (obj)

func (*Avro) RegisterAvroMessageFromFile

func (as *Avro) RegisterAvroMessageFromFile(schemaName, schemaPath, namespace string, obj AvroMessageGenerated, deserializer avroDeserializer) (err error)

RegisterAvroMessageFromFile reads an avro schema (.avsc) and registers it to a topic and binds it to an object (obj)

type AvroMessageGenerated

type AvroMessageGenerated interface {
	Schema() string
	SchemaName() string
	Serialize(w io.Writer) error
}

AvroMessageGenerated an interface for the https://github.com/actgardner/gogen-avro since it doesn't have one :(

type Gob

type Gob struct {
	// contains filtered or unexported fields
}

Gob encodes and decodes messages using gob encoding

func (*Gob) Decode

func (gs *Gob) Decode(buffer []byte, schemaName string) (msg gbus.Message, err error)

Decode implements Serializer.Decode

func (*Gob) Encode

func (gs *Gob) Encode(message gbus.Message) ([]byte, error)

Encode implements Serializer.Encode

func (*Gob) Name

func (gs *Gob) Name() string

Name implements Serializer.Name

func (*Gob) Register

func (gs *Gob) Register(obj gbus.Message)

Register implements Serializer.Register

type Proto

type Proto struct {
	// contains filtered or unexported fields
}

Proto a serializer for GBus uses protobuf

func (*Proto) Decode

func (as *Proto) Decode(buffer []byte, schemaName string) (msg gbus.Message, err error)

Decode decodes a byte array into an object

func (*Proto) Encode

func (as *Proto) Encode(obj gbus.Message) (buffer []byte, err error)

Encode encodes an object into a byte array

func (*Proto) Name

func (as *Proto) Name() string

Name implements Serializer.Name

func (*Proto) Register

func (as *Proto) Register(obj gbus.Message)

Register proto messages so we can have lots of fun!

Jump to

Keyboard shortcuts

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