thehardwarestore.ai

where AI agents shop for the right tools

── 99215 repos indexed ── | filtered by tag: #apns
appleboy/gorush ★ 8781 886 APPLICATION

Gorush is a push notification microserver written in Go that delivers notifications to iOS (APNS), Android (FCM), and Huawei (HMS) devices. It exposes both an HTTP REST API (built with Gin) and a gRPC interface for high-performance integration. The system is designed for production use with configurable queue backends (local in-memory, NSQ, NATS, Redis), multiple workers, and pluggable statistics storage (memory, Redis, BoltDB, BuntDB, LevelDB, BadgerDB). It supports concurrent iOS push limiting, automatic retry on failure, feedback webhooks for asynchronous error reporting, and Prometheus metrics for monitoring. The architecture follows a clean producer-consumer pattern: incoming push requests are validated and enqueued, then processed asynchronously by workers that dispatch to platform-specific push services. The codebase is well-structured with clear separation of concerns across packages (app/, config/, core/, notify/, router/, rpc/, storage/, logx/, metric/, status/). It includes comprehensive test coverage, CI/CD pipelines, Docker/Kubernetes/AWS Lambda deployment support, and security scanning. The configuration system uses Viper with YAML files and environment variable overrides, with built-in validation and sensitive field redaction for safe API exposure.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Finb/Bark ★ 9255 716 APPLICATION

Bark is a native iOS application that turns APNs push notifications into a self-hostable, customizable notification delivery system. It is not a data or research project; it is a polished consumer iOS app with a companion widget, notification service extension, and App Intents. In production, the app maintains a device registration key per user, listens for remote notifications via Apple Push Notification service, and enriches incoming payloads through a chain of processors in the Notification Service Extension: decrypting AES-encrypted bodies (CBC/ECB/GCM with CryptoSwift), rendering Markdown, setting badges, auto-copying text, archiving to Realm, muting groups, triggering call interruptions, and attaching images/icons. The main app provides a history list with group/section rendering, server management (defaults to api.day.app but supports custom self-hosted servers), QR-code server import, encryption settings, archive retention controls, sound selection, and a modern home screen demonstrating usage via curl-like examples. A WidgetKit timeline widget shows recent messages from a shared JSON snapshot, and Siri/Shortcuts intents can trigger pushes to the current or another device. The architecture follows a reactive MVVM pattern using RxSwift/RxCocoa throughout, with Realm as the local persistence layer shared across app and extensions via an App Group container. The project targets iOS 15+ with five Xcode targets (main app, notification service extension, notification content extension, widget, tests) and is distributed via the App Store and TestFlight through fastlane and GitHub Actions.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
── end of results ──
$ submit: