finds.dev← search

// the find

appleboy/gorush

★ 8,780 · Go · MIT · updated Jul 2026

A push notification server written in Go (Golang).

gorush is a standalone push notification server that sits in front of APNS, FCM, and Huawei's HMS behind one REST (and gRPC) API, so you send a single JSON payload instead of hand-rolling three separate SDK integrations. It's aimed at teams that need to fan out notifications from backend services without baking provider-specific logic into every app server.

Pluggable everything: queue backend (local channel, NSQ, NATS, Redis streams) and stats storage (memory, Redis, Bolt, Bunt, Level, Badger) can be swapped via config, so you can start with a single binary and move to a distributed setup later without changing client code. Ops basics are actually there instead of bolted on later — Prometheus metrics, /sys/stats, /healthz, graceful shutdown that drains in-flight APNs/FCM sends before exit. CI is solid for a project this size: lint, Trivy scanning, and codecov are wired into the workflow rather than just claimed in the README. Recent activity (push in the last few months) and a maintained release cadence, not an abandoned v1 project.

The config schema is huge — three notification providers each with their own cert/credential format (p8/p12/pem for iOS, service account JSON for FCM, app secret for HMS) means the first integration pass is mostly reading tables, not writing code. Retry is a flat count with no documented backoff strategy, which is a rough edge if a provider starts rate-limiting you. The sync-send mode only works with the local queue engine — a meaningful constraint that's buried in a diff snippet in the README rather than called out where queue engines are introduced. No real guidance on handling dead/invalid device tokens at scale beyond returning an error string in the log array; you're on your own for reconciling that back to your user database.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →