A Go package for sending Apple Push Notifications via the HTTP/2 APNs provider API.
APNS/2 is a Go package that enables developers to send Apple Push Notifications (APNs) to iOS, tvOS, Safari, and macOS applications using Apple's HTTP/2 provider API. It solves the problem of integrating push notifications into Go backends by providing a fast, reliable, and feature-complete library that handles authentication, connection management, and payload construction.
Go developers building backend services for Apple ecosystem apps (iOS, macOS, tvOS, Safari) that require push notification capabilities.
Developers choose APNS/2 for its performance (HTTP/2 persistent connections), modern feature support (including iOS 15 features and JWT authentication), and clean Go-native API that simplifies APNs integration compared to lower-level implementations.
⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Apple's HTTP/2 APNs API with persistent connections, enabling high-speed push notification delivery as emphasized in the project's speed documentation.
Supports JWT token-based authentication alongside certificates, allowing flexible key management with a single signing key for multiple apps across development and production.
Includes up-to-date support for iOS 10+ features like collapse IDs and mutable notifications, plus iOS 15's interruptionLevel and relevanceScore, ensuring compatibility with Apple's latest APIs.
Maintains open connections to APNs as recommended by Apple, improving reliability and throughput for high-volume scenarios without re-establishing TLS handshakes.
Exclusively designed for Apple's APNs, so it cannot send push notifications to Android, Windows, or other platforms without integrating additional libraries or services.
Requires developers to manage client instances and connection pooling for optimal performance, adding complexity compared to auto-scaling managed services that handle this automatically.
Initial setup involves handling Apple-specific .p12 certificates or .p8 keys with Key ID and Team ID, which can be error-prone and time-consuming for teams new to APNs.