Analysis updated 2026-05-18
Add real-time push notifications to an Android app.
Stream live order or status updates from a backend to a mobile app.
Build reliable device-to-server signalling with automatic retries.
| zomato/pulse-droid | wifi-x-smasher/nuvio-windows-unofficial | huiyeji-7/pei-pei-shua | |
|---|---|---|---|
| Stars | 26 | 25 | 24 |
| Language | Kotlin | Kotlin | Kotlin |
| Setup difficulty | moderate | easy | easy |
| Complexity | 3/5 | 2/5 | 2/5 |
| Audience | developer | general | general |
Figures from each repo's GitHub metadata at analysis time.
Requires implementing a bridge object to supply logging, JSON, and coroutine scope.
pulse-droid is a Kotlin library from Zomato that wraps the Eclipse Paho MQTT client to make it easier to use inside Android apps. MQTT is a lightweight messaging protocol commonly used for things like push notifications, real-time order updates, or device-to-server signalling, where small messages move between an app and a broker over a long-lived connection. The library is published as a kit called PulseMqttKit and the README is mostly an integration guide for Android developers. You start by creating an instance of PulseMqttKit inside your Application class and calling initialize, passing in a context and a bridge object that you implement. The bridge lets the library reach back into your app for things like the logger you want to use, a Gson instance for JSON, a coroutine scope, a health monitoring config, and a network monitoring config. This means the library does not force a particular logging or serialization choice on the host app. All MQTT actions go through a command submission model rather than direct method calls. There are ConnectCommand, PublishCommand, SubscribeCommand, UnsubscribeCommand, and DisconnectCommand types, each submitted with pulseMqttKit.submitCommand. Commands can declare dependencies on other commands, so for example you can attach a ConnectCommand as a dependency of a SubscribeCommand and the subscribe will only run if the connect succeeds first. Each command also takes a retry policy: Sequential for fixed intervals, Exponential for back-off, Jitter for adding randomness so many clients do not retry at the exact same moment, or None to disable retries. You can exclude specific MQTT exception codes, like NOT_AUTHORIZED, from retry attempts. The connection options can include an AutoSubscriptionConfig with a map of topics and the message types and quality of service levels you expect on each. When this is enabled, the library re-subscribes to those topics on its own after a reconnect, so you do not have to resend SubscribeCommands yourself. You can also register listeners that receive results for each command, including how many retry attempts were used and the total execution time, and unregister them when done. For staying connected over time, the library has a health monitoring system that can run periodic checks through either Android's AlarmManager or Jetpack WorkManager and reconnect automatically if the link drops. A shutDown call disconnects and clears all listeners. The README is published as plain documentation with example code, no license is shown in the clipped portion.
An Android library that wraps MQTT messaging (real-time updates, notifications) behind a simple command-based API with retries and auto-reconnect.
Mainly Kotlin. The stack also includes Kotlin, MQTT, Coroutines.
No license information is shown in the available documentation.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.