Live data from Hacker News

UnifiedPush: A decentralized, open-source push notification protocol

f-droid.org

131–140 of 150 posts

Re: UnifiedPush: A decentralized, open-source push notification protocol

#131

Apps draining your battery to check for notifications is the worst thing about degoogled Android. With notifications enabled my telegram client can drain my battery in a very low number of hours (got suggestions here? any client supporting UnifiedPush?) So this is welcome, but it requires application support. And if apps on your phone use both GCM and UnifiedPush you still end up with multiple providers. But at least…

It's really not that bad. It uses 1% of battery for 17h. Sometimes even less than that and it shows 0% after the entire day. So it's a hypothetical problem IMHO. There are very few cases or phones i see these days where people complain about battery: https://docs.ntfy.sh/faq/#how-much-battery-does-the-android-...

The reason I said it is that it's a problem for me. Notifications on/off makes a night and day difference. Did you link ntfy because that's what Telegram FOSS uses?

Re: UnifiedPush: A decentralized, open-source push notification protocol

#133
post #99

Off-topic: Sometimes I work on ships that have Wi-Fi for talking to local services, but due to strict metering, Internet access is usually disabled. So most of the time there's no way to get notifications from monitoring systems and your fellow crew, let alone shoreside team members. It would be nice to have a solution for delivering pushes internally, and also hold open a best-effort connection to a remote server th…

In addition to what the others wrote (a local Matrix server and UnifiedPush provider such as ntfy would work fine), I suggest you look into p2p messaging systems such as Briar. I think Tox is also p2p? Lastly, Secure Scuttlebutt was actually designed on a boat for sporadic internet connection and local connections, as well as sneakernet, so that would work too, but I don't think it's designed for IM. Perfect for blog…

Airdrop (AWDL) is open, within iOS and macOS at least, and P2P Matrix uses it :)

Re: UnifiedPush: A decentralized, open-source push notification protocol

#134

Please don’t get me wrong but I wonder what is the use case for this. First of all this tries to solve a problem that has already been solved by the mobile device OS layer within IOS and Android and furthermore is only working for Android. Why should anyone use this?

It looks like this aims to be a replacement for people want to use an Android-based OS but don't want to rely on Google services, normally for reasons of philosophical objection to big tech's de facto surveillance capabilities. So presumably users of GrapheneOS, CalyxOS, LineageOS, etc.

Also since Google is blocked in China, Firebase Cloud Messaging doesn't work there. Android has something like a 75% market share in that market. Some vendors have their own offerings (e.g. Xiaomi MiPush, Huawei PushKit) etc, I could buy that a popular centralised solution would be more attractive than doing N integrations.

Re: UnifiedPush: A decentralized, open-source push notification protocol

#135
post #2

Wow, that was submitted here quicker than we could do it! UnifiedPush has been a thing for a while, see the official website: https://unifiedpush.org/ With this blog post, we† tried to clarify a few names. Feel free to point out things that are still unclear, the documentation is pretty much a WIP. UnifiedPush aims at replacing the push notifications mechanism provided by Google services with something independent, t…

Is there any plan to have a method available for patching proprietary apps to work with this? Notifications is the only reason I still have Goolag services on my phone's work profile, and having an alternative to that would be great for privacy.

As a sibling commenter said, those proprietary apps have a server part that sends notifications to Google's server.

If UnifiedPush were to gain enough traction (say it would be adopted on FireOS, HuaweiOS and whatever platform don't use Google services), those apps would likely start to support it directly.

Another possible avenue is to add UnifiedPush support to push libraries used by these apps both server and client-side. Multiple libraries (Google FCM included, I linked at least two others from Amazon and Huawei in another comment here) abstract push notifications away so the developer gets a single server to talk to, and a unified API across iOS, Android, Web, etc. If these libraries started supporting UnifiedPush, adoption could increase a lot, without involving any developer effort for these proprietary apps.

Re: UnifiedPush: A decentralized, open-source push notification protocol

#136
post #99

Earlier quoted context omitted.

In addition to what the others wrote (a local Matrix server and UnifiedPush provider such as ntfy would work fine), I suggest you look into p2p messaging systems such as Briar. I think Tox is also p2p? Lastly, Secure Scuttlebutt was actually designed on a boat for sporadic internet connection and local connections, as well as sneakernet, so that would work too, but I don't think it's designed for IM. Perfect for blog…

Airdrop (AWDL) is open, within iOS and macOS at least, and P2P Matrix uses it :)

Ah, thanks for the correct term. I am not sure the specification is open enough for other operating systems to support it, which is what I meant.

Among my acquaintances, I can count Apple users on a single hand (There's OWL [1] which looks promising on Linux. I hope Android devices can get something soon. I'm still a bit confused by how Linux drives Wi-Fi radio, and what is and isn't implementable in software: could older Android devices gain support for NAN and OWL through a software update? What about old computers with old Wi-Fi cards?

I first got aware of Wi-Fi NAN by chatting with neilalexander on #yggdrasil:matrix.org :)

It looks promising for advertising capabilities to nearby hosts, allowing to negotiate p2p connections.

[1]: https://owlink.org/

Re: UnifiedPush: A decentralized, open-source push notification protocol

#137
post #62

Off-topic: Sometimes I work on ships that have Wi-Fi for talking to local services, but due to strict metering, Internet access is usually disabled. So most of the time there's no way to get notifications from monitoring systems and your fellow crew, let alone shoreside team members. It would be nice to have a solution for delivering pushes internally, and also hold open a best-effort connection to a remote server th…

You can self host a Gotify server (single file executable, web interface), install the app, set it to connect to the server on the local network. Sending a message is as easy as a curl to the server. It will show up in the apps. https://gotify.net/ https://github.com/gotify/android The problem is that there is no iOS app. You could use the browser there but maybe ntfy would be a better fit (Android + iOS.)

ntfy is a Gotify alternative. It has an iOS app, but it still relies on Apple's push service, as it cannot open a persistent backgroung connection due to iOS restrictions.

Re: UnifiedPush: A decentralized, open-source push notification protocol

#138
post #134

Please don’t get me wrong but I wonder what is the use case for this. First of all this tries to solve a problem that has already been solved by the mobile device OS layer within IOS and Android and furthermore is only working for Android. Why should anyone use this?

It looks like this aims to be a replacement for people want to use an Android-based OS but don't want to rely on Google services, normally for reasons of philosophical objection to big tech's de facto surveillance capabilities. So presumably users of GrapheneOS, CalyxOS, LineageOS, etc. Also since Google is blocked in China, Firebase Cloud Messaging doesn't work there. Android has something like a 75% market share in…

This. It also works without internet connection if you want push notifications within a LAN.

The vision is that you only need to implement support for 1 integration: UnifiedPush, possibly by embedding one of the libraries that manage it and fallbacks. You automatically gain support for compatible alternatives.

There's a variety of reasons why people can't or don't want to rely on Google services. Before UnifiedPush, one would have to "hardcode" an alternative, or more commonly implement a persistent connection within the app.

This also has some potential for more efficient push implementation: for instance, if you have access to an SMS gateway, you could use that to push notification without enabling data connection.

The specification also makes it easier to support third-party operating systems and clients.

Re: UnifiedPush: A decentralized, open-source push notification protocol

#139

This sounds like it could be the reverse of REST, so could be pretty important and perhaps it can grow into a W3C spec.

That's an interesting thought, but currently the Server-Server specification is quite trivial, the more complicated part is the Android (and Linux) API, which I don't think the W3C would cover.

There's definitely room for adoption within the freedesktop.org umbrella for the Linux part, once this part is a bit more mature.

Re: UnifiedPush: A decentralized, open-source push notification protocol

#140
post #84

Earlier quoted context omitted.

It seems like you have misunderstood something. I just read the specification you linked. If I understand it right, it just specifies what we call a "Push gateway" in our last diagram in the "under the hood" section. As in, it specifies how multiple servers can connect to a single (XMPP-speaking) push server. This is also evident from the excerpt I'm quoting: >XMPP Push works between the user's XMPP server and two pu…

You seem to not see the forest behind the trees. It doesn't do 100% of what your UnifiedPush does, sure, but it does 99%. All it needs to reach the final 1% is to send a message with an agreed payload format to a client. A day of work. As I said, we did it as far back as 2016: a watered-down XMPP client (a "distributor", as you call it) was used to deliver push notifications to a few different apps on devices that di…

> You seem to not see the forest behind the trees

I almost used my sentence myself. The overlap is almost zero.

> All it needs to reach the final 1% is to send a message with an agreed payload format to a client.

This is the part we're interested in. We standardize this part and make it modular. The core issue is that multiple "client"s that do not interact with each other traditionally each implement their own payload format and background connection. Which drains battery. We propose a mechanism to delegate that to a third-party that can then multiplex those messages. That's all.

It's not a lot of work per se, but coming up with a modular API is not that trivial either, and we have to spread the word so that it can be used by multiple projects.

Lastly, you seem pretty focused on XMPP clients. Unfortunately (or maybe fortunately), not every app uses XMPP. On my phone, apps that could theoretically use UnifiedPush are: NextCloud, Etar Calendar, DavX5 caldav synchronization, K-9 mail, Element & others Matrix clients, HomeAssistant, FindMy & other device locators, covid tracker, Carnet notes application, Fennec (Firefox), KDE Connect, Mobilizon, Peertube Client, UnCiv, and various others, including chat apps and weather apps. XMPP would bring very little to those, especially as they just need that "1%" functionality you quoted.

There is some overlap indeed, as there is a server-server API. However, 99% of the spec you linked is completely useless or overkill for our use-case. We just accept POST requests to an endpoint and forward them to the app running on a user's device.

> As I said, we did it as far back as 2016: a watered-down XMPP client (a "distributor", as you call it) was used to deliver push notifications to a few different apps on devices that didn't have GCM (as it was called then).

That's pretty good indeed; was the specification open so that other apps could join in? Do you mind sharing a link? You can just implement the UnifiedPush specification in that distributor, make sure the server-side part accepts requests in the format specified, and you have a UnifiedPush-compliant application that other apps can use.

I've been looking for such a specification for a while, there's been some talks around the topic for years, including OpenPush [1], but nothing concrete or public that I know of. The link you shared in your previous comment does not address the "distributor" part.

> Someone has to antagonize people who ignore prior art.

Well, please at least try to understand the thing you're criticizing before, that's the bare minimum.

[1]: https://bubu1.eu/openpush/

Post reply on HN