Courier is the superhighway between mobile devices and our backend servers. It’s a persisting connection through which we’re able to push content from our server to the app. We’re excited to announce that we have open-sourced three Courier libraries for mobile and backend clients:
These client libraries can be used to create a long-running connection with an MQTT broker on Android, iOS, and Go applications.
Courier is a scalable, low latency, and persistent network transmission mechanism for mobile<>server communication built over MQTT protocol.
Quality of Service
All Courier libraries support three QoS levels for reliable message delivery: 0 (at most once), 1 (at least once) and 2(exactly once).
All Courier libraries are able to reconnect automatically whenever there are network or other unexpected failures using a connection retry policy.
Flexible Encoder/Decoder support
All Courier libraries provide support for converting MQTT message payload to or from any custom message type.
Clean & easy to understand APIs
All Courier libraries provide clean APIs for connect/disconnect, subscribe/unsubscribe and publish/receivefunctionalities. The APIs are simple and easy to understand.
Courier libraries also provide events for tracking end-to-end message delivery and connection lifecycle.
All Courier libraries are well-documented with examples. Also, these libraries have their own individual documentations hosted on github pages.
courier-android : https://gojek.github.io/courier-android
courier-iOS : https://gojek.github.io/courier-iOS
courier-go : https://gojek.github.io/courier-go
Other library-specific features:
Oh, it’s a five-part series, so your tech reading for the weekend is sorted. 🖖
How to reach out?
You can join our discord server to connect with the team behind this amazing project.
Find more stories from our vault, here.
Also, we’re hiring! Check out open job positions by clicking below: