# Apple Push Notification Service implementation - pitch

**URL:** <https://forums.swift.org/t/apple-push-notification-service-implementation-pitch/20193>\
**Category:** Pitches\
**Tags:** push, apns\
**Created:** [February 6, 2019, 2:05am UTC](https://forums.swift.org/t/apple-push-notification-service-implementation-pitch/20193 "2019-02-06T02:05:34Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![tanner0101](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/tanner0101/32/675_2.png) [@tanner0101](https://forums.swift.org/u/tanner0101)\
**Post date:** [February 6, 2019, 3:07am UTC](https://forums.swift.org/t/apple-push-notification-service-implementation-pitch/20193/2 "2019-02-06T03:07:53Z")

</div>

This package would be a great, shared foundation for building APNS support into higher level frameworks. Its only [dependencies](https://github.com/kylebrowning/swift-nio-http2-apns/blob/master/Package.swift#L15-L21) are NIO, NIOHTTP2, and NIOOpenSSL which means any existing NIO-based projects should be able to integrate this easily without needing to drag in large dependencies.

One thing we should be thinking of is that NIO [will likely be dropping OpenSSL](https://forums.swift.org/t/rfc-moving-swiftnio-ssl-to-boringssl/18280) soon. This will make NIOAPNS' dependency on OpenSSL less ideal. In that case, we have a few options:

- Find a pure Swift solution
- Embed a more lightweight C library that does ECDSA (like NIOPostgres does for MD5)
- Continue linking OpenSSL and wait for broader solution to Crypto

Option three seems fine as frameworks like Vapor will likely continue to link OpenSSL until a broader Crypto solution is agreed upon. But this is something we should consider.

Overall, huge +1, really nice work on this!

---

_[View the full topic](https://forums.swift.org/t/apple-push-notification-service-implementation-pitch/20193)._
