A Ruby gem for sending push notifications to iOS, Android, Windows, and web platforms with reliability and advanced features.
Rpush is a Ruby gem that provides a unified service for sending push notifications to iOS, Android, Windows, and web platforms. It solves the problem of managing multiple push notification services by offering a single, reliable interface with advanced features like multi-platform support, flexible storage backends, and extensible plugins.
Ruby developers and teams building applications that require real-time push notifications, particularly those using Ruby on Rails or other Ruby frameworks who need a robust, self-hosted notification solution.
Developers choose Rpush for its comprehensive multi-platform support, reliability, and rich feature set not found in other gems, along with the flexibility to run in various deployment modes and integrate seamlessly with existing Ruby projects.
The push notification service for Ruby.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Unifies notifications for iOS (APNs), Android (FCM), Amazon devices, Windows, and web browsers via Webpush, reducing code duplication across platforms as shown in the README's service examples.
Supports ActiveRecord for database integration or Redis for high-performance in-memory storage, allowing teams to choose based on their infrastructure needs.
Offers built-in plugins for error monitoring (e.g., Sentry, Bugsnag) and a framework for custom plugins, enhancing observability without modifying core code.
Can run as a daemon, in job queues, on the command line, or embedded, enabling both vertical scaling with threading and horizontal scaling with multiple processes.
Designed for uptime with automatic app loading and HUP signal support, allowing certificate or configuration updates without restarting the service.
Requires manual handling of SSL certificates for APNs and encryption keys for token-based authentication, with expiration monitoring needed via custom hooks, adding operational burden.
Delivered notifications accumulate in the database unless manually cleared, which the README warns can be problematic, especially with Redis storage, necessitating extra maintenance.
Support for older or niche services like Windows Phone and Pushy is basic, with incomplete feature implementation (e.g., Pushy lacks topic subscriptions), and third-party plugins are sparse.
Initial setup involves multiple steps per platform (e.g., generating certificates for APNs, JSON keys for FCM), and the configuration options are extensive, increasing the learning curve.