quickproto

package module
v1.1.8 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2022 License: GPL-2.0 Imports: 6 Imported by: 0

README

Fast golang protocol parser

Supports:

  • Headers (Support listed values, IE: Key=[Value, Value, Value])
  • Body (Can be encoded/decoded to base64)
  • Delimiters

Data is split apart by the delimiter.

Say the delimiter is a $:

The body and header will be split by the delimiter * 4

Each key value pair will be split by the delimiter * 2

Then the key values will be split by the delimiter.

Example:

key1$value1&value2$$key2$value2$$$$BODYBODYBODY

Documentation

Index

Constants

This section is empty.

Variables

View Source
var STANDARD_DELIM []byte = []byte("$")

Functions

func WriteConn added in v1.1.5

func WriteConn(conn net.Conn, msg *Message) error

Types

type Config added in v1.1.6

type Config struct {
	Delimiter []byte
	UseBase64 bool
	BufSize   int
}

type Message

type Message struct {
	Data       []byte
	Delimiter  []byte
	Headers    map[string][]string
	Body       []byte
	Use_Base64 bool
	Files      map[string]MessageFile
}

A Message is a protocol message.

func NewMessage

func NewMessage(delimiter []byte, use_b64 bool) *Message

NewMessage creates a new Message.

func ReadConn added in v1.1.5

func ReadConn(conn net.Conn, delimiter []byte, use_b64 bool, buf_size int) (*Message, error)

func (*Message) AddContent added in v1.1.7

func (m *Message) AddContent(content any) error

func (*Message) AddFile added in v1.1.7

func (m *Message) AddFile(file MessageFile)

func (*Message) AddHeader added in v1.1.1

func (m *Message) AddHeader(key string, value string)

func (*Message) AddRawFile added in v1.1.7

func (m *Message) AddRawFile(name string, data []byte)

func (*Message) BodyDelimiter added in v1.1.4

func (m *Message) BodyDelimiter() []byte

func (*Message) ContentLength

func (m *Message) ContentLength() int

Get content length of the message.

func (*Message) EndingDelimiter added in v1.1.4

func (m *Message) EndingDelimiter() []byte

func (*Message) FileDelimiter added in v1.1.7

func (m *Message) FileDelimiter() []byte

func (*Message) Generate

func (m *Message) Generate() (*Message, error)

creates a protocol message. Header is a map of key/value pairs. Body is a base64 encoded byte slice.

func (*Message) HeaderDelimiter added in v1.1.4

func (m *Message) HeaderDelimiter() []byte

func (*Message) Parse

func (m *Message) Parse() (*Message, error)

parses protocol messages. Header is a map of key/value pairs. Body is a base64 encoded byte slice.

type MessageFile added in v1.1.7

type MessageFile struct {
	Name string
	Data []byte
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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