https://github.com/getsidetrack/swift-nio-stomp
Event-driven Swift framework for messaging via the STOMP protocol
https://github.com/getsidetrack/swift-nio-stomp
messaging networking stomp stomp-client swift swift-package swift-server swiftnio vapor vapor-swift
Last synced: about 1 year ago
JSON representation
Event-driven Swift framework for messaging via the STOMP protocol
- Host: GitHub
- URL: https://github.com/getsidetrack/swift-nio-stomp
- Owner: getsidetrack
- Created: 2022-05-03T22:02:30.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T11:38:18.000Z (over 2 years ago)
- Last Synced: 2025-01-28T17:23:06.284Z (over 1 year ago)
- Topics: messaging, networking, stomp, stomp-client, swift, swift-package, swift-server, swiftnio, vapor, vapor-swift
- Language: Swift
- Homepage:
- Size: 74.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SwiftNIO STOMP
⚠️ Work in progress. I do not recommend using this in your own applications (see information below).
Built on top of [NIO](https://github.com/apple/swift-nio/), this Swift package provides client-side compatibility with STOMP 1.0, 1.1 and 1.2 servers. It is designed to work well with server-side frameworks such as Vapor, for applications where you need to ingest data using the [STOMP protocol](http://stomp.github.io/index.html).
## Scope
While the project does work, there's a lot of room to improve (pull requests accepted!). Some areas which have been considered:
- Server compatibility: Act as a server, allowing clients to connect and send/receive messages.
- Improved resilience (Connection fallover, better error handling, automatic reconnections/resubscribe)
- Message batching, unbatching, transformers, and decoders.
- Improved observability using metrics, tracing and logging.
- SSL/TLS support.
## Known Issues and Incomplete Work
- There appears an unknown frame decoding issue affecting ~0.8% of messages causing the data to be incomplete.
- Receipts are currently unsupported.
- Add `client-auto` ack mode (`client-individual` but automatically acknowledged once successfully processed by this package)
- Add full suite of unit tests (including performance tests)
- Add integration test using mock STOMP broker
- Add full DocC documentation