go-proto-stomp
Simple Text Oriented Messaging Protocol
STOMP Protocol Implementation in Golang (with interactive CLI)
Includes:
stomper
: Interactive CLI for STOMP Client
stompd
: STOMP Broker
stomp
: STOMP Broker/Client Library
Supported Transports
- TCP
- Websocket
stomper
stomper -t tcp
stompd
Starting the STOMP Server/Broker:
stompd -t tcp <host> <port>
stomp
Fetching the module:
go get -u github.com/tjs-w/go-proto-stomp
Importing the package:
import "github.com/tjs-w/go-proto-stomp/pkg/stomp"
STOMP Library Documentation
GoDoc lists the APIs for integrating both the
STOMP Broker and Client.
The implementation adheres to the spec leaning towards the version 1.2 of the protocol.
This implementation strictly follows the below grammar for frame construction and validation.
NULL = <US-ASCII null (octet 0)>
LF = <US-ASCII line feed (aka newline) (octet 10)>
CR = <US-ASCII carriage return (octet 13)>
EOL = [CR] LF
OCTET = <any 8-bit sequence of data>
frame-stream = 1*frame
frame = command EOL
*( header EOL )
EOL
*OCTET
NULL
*( EOL )
command = client-command | server-command
client-command = "SEND"
| "SUBSCRIBE"
| "UNSUBSCRIBE"
| "BEGIN"
| "COMMIT"
| "ABORT"
| "ACK"
| "NACK"
| "DISCONNECT"
| "CONNECT"
| "STOMP"
server-command = "CONNECTED"
| "MESSAGE"
| "RECEIPT"
| "ERROR"
header = header-name ":" header-value
header-name = 1*<any OCTET except CR or LF or ":">
header-value = *<any OCTET except CR or LF or ":">
#stomp #protocol #broker #server #client #cli
License
MIT License
Copyright (c) 2022 Tejas Wanjari