Courier Is Now Open-Source
Here’s the new addition to our open source roster: Courier, a persisting connection that pushes content from our server to the app.
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.
Features
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).
Automatic Reconnect
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/receive functionalities. The APIs are simple and easy to understand.
Observability
Courier libraries also provide events for tracking end-to-end message delivery and connection lifecycle.
Documentation
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
You can read more about courier here. Also, you can find the end-to-end chat example created using these courier libraries.
Other library-specific features:
We have also covered Android & iOS libraries in detail in our blogs.
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: