https://github.com/tjs-w/go-proto-stomp
STOMP Protocol Client/Broker Implementation (with interactive CLI)
https://github.com/tjs-w/go-proto-stomp
cli go golang protocol stomp stomp-broker stomp-client stomp-library stomp-messaging stomp-protocol stomp-server stomp-tcp stompbroker stompclient stompmessageclient stompprotocol stompserver stompwebsocket tcp websocket
Last synced: 5 months ago
JSON representation
STOMP Protocol Client/Broker Implementation (with interactive CLI)
- Host: GitHub
- URL: https://github.com/tjs-w/go-proto-stomp
- Owner: tjs-w
- License: mit
- Created: 2022-05-28T07:37:40.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-30T21:34:10.000Z (almost 4 years ago)
- Last Synced: 2024-06-19T10:05:41.345Z (almost 2 years ago)
- Topics: cli, go, golang, protocol, stomp, stomp-broker, stomp-client, stomp-library, stomp-messaging, stomp-protocol, stomp-server, stomp-tcp, stompbroker, stompclient, stompmessageclient, stompprotocol, stompserver, stompwebsocket, tcp, websocket
- Language: Go
- Homepage:
- Size: 660 KB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-proto-stomp
[](https://github.com/tjs-w/go-proto-stomp/releases/latest)
[](https://github.com/tjs-w/go-proto-stomp/actions/workflows/go.yml)
[](https://github.com/tjs-w/go-proto-stomp/actions/workflows/codeql-analysis.yml)
[](https://goreportcard.com/report/github.com/tjs-w/go-proto-stomp)
[](https://codeclimate.com/github/tjs-w/go-proto-stomp/maintainability)
[](https://codeclimate.com/github/tjs-w/go-proto-stomp/test_coverage)
[](https://codecov.io/gh/tjs-w/go-proto-stomp)

[
](https://stomp.github.io/index.html)
_**S**imple **T**ext **O**riented **M**essaging **P**rotocol_
## STOMP Protocol Implementation in Golang (with interactive CLI)
[](https://pkg.go.dev/github.com/tjs-w/go-proto-stomp/)
[](https://github.com/tjs-w/go-proto-stomp/releases/latest)

Includes:
1. `stomper`: Interactive CLI for STOMP Client
2. `stompd`: STOMP Broker
3. `stomp`: STOMP Broker/Client Library
### Supported Transports
1. TCP
2. Websocket
## stomper
```shell
stomper -t tcp
```

## stompd
Starting the STOMP Server/Broker:
```shell
stompd -t tcp
```
## stomp
Fetching the module:
```shell
go get -u github.com/tjs-w/go-proto-stomp
```
Importing the package:
```shell
import "github.com/tjs-w/go-proto-stomp/pkg/stomp"
```
## STOMP Library Documentation
*[GoDoc](https://pkg.go.dev/github.com/tjs-w/go-proto-stomp/pkg/stomp)* lists the APIs for integrating both the
STOMP Broker and Client.
## **[STOMP Protocol Specification](https://stomp.github.io/stomp-specification-1.2.html)**
The implementation adheres to the spec leaning towards the _version 1.2_ of the protocol.
### STOMP Frame: Augmented BNF Form
This implementation strictly follows the below grammar for frame construction and validation.
```
NULL =
LF =
CR =
EOL = [CR] LF
OCTET =
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*
header-value = *
```
_#stomp #protocol #broker #server #client #cli_
## License
MIT License
Copyright (c) 2022 Tejas Wanjari