envelope

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: May 7, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrSpecialEnvelope = errors.Newf(
	"[envelope] final message has protocol-specific flags: %w",
	io.EOF,
).WithCode(errors.Unknown)

Functions

This section is empty.

Types

type Envelope

type Envelope struct {
	Data  mem.BufferSlice
	Flags uint8
	// contains filtered or unexported fields
}

Envelope represents a block of arbitrary bytes wrapped in gRPC and Connect's framing protocol.

func (*Envelope) IsSet

func (e *Envelope) IsSet(flag uint8) bool

Check if a flag is set in the envelope

func (*Envelope) Len

func (e *Envelope) Len() int

Len returns the number of bytes of the unread portion of the envelope.

func (*Envelope) Read

func (e *Envelope) Read(data []byte) (int, error)

Read implements io.Reader.

func (*Envelope) Seek

func (e *Envelope) Seek(offset int64, whence int) (int64, error)

Seek implements io.Seeker.

func (*Envelope) WriteTo

func (e *Envelope) WriteTo(dst io.Writer) (wroteN int64, err error)

WriteTo implements io.WriterTo.

type EnvelopeReader

type EnvelopeReader struct {
	Ctx             context.Context
	Last            Envelope
	BufferPool      mem.BufferPool
	Reader          io.Reader
	BytesRead       int64
	Codec           encoding.Codec
	CompressionName string
	CompressionPool *compress.CompressionPool
	ReadMaxBytes    int
}

EnvelopeReader is responsible for reading Envelope messages.

func (*EnvelopeReader) Read

func (r *EnvelopeReader) Read(env *Envelope) error

Read reads an Envelope from the underlying reader.

func (*EnvelopeReader) Unmarshal

func (r *EnvelopeReader) Unmarshal(message any) error

Unmarshal reads an Envelope, decompresses its data if necessary, and unmarshal it.

type EnvelopeWriter

type EnvelopeWriter struct {
	Ctx              context.Context
	Sender           duplex.MessageSender
	Codec            encoding.Codec
	CompressMinBytes int
	CompressionName  string
	CompressionPool  *compress.CompressionPool
	BufferPool       mem.BufferPool
	SendMaxBytes     int
}

EnvelopeWriter is responsible for writing Envelope messages.

func (*EnvelopeWriter) Marshal

func (w *EnvelopeWriter) Marshal(message any) error

Marshal serializes a message and writes it as an Envelope.

func (*EnvelopeWriter) Write

func (w *EnvelopeWriter) Write(env *Envelope) error

Write writes the enveloped message, compressing if necessary.

type WriteSender

type WriteSender struct {
	Writer io.Writer
}

WriteSender is a sender that writes to an io.Writer. Useful for wrapping [http.ResponseWriter].

func (WriteSender) Send

func (w WriteSender) Send(payload duplex.MessagePayload) (int64, error)

Jump to

Keyboard shortcuts

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