All Projects → mercari → Gaurun

mercari / Gaurun

Licence: mit
General push notification server in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Gaurun

Uniqush Push
Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices.
Stars: ✭ 1,238 (+53.98%)
Mutual labels:  gcm, push-notifications, apns
azure-notificationhubs-java-backend
Azure Notification Hubs SDK for Java
Stars: ✭ 31 (-96.14%)
Mutual labels:  push-notifications, apns, gcm
Node Pushnotifications
Push notifications for GCM, APNS, MPNS, AMZ (automatic detection from device token)
Stars: ✭ 432 (-46.27%)
Mutual labels:  gcm, push-notifications, apns
OneSignal-Ionic-Sample
No description or website provided.
Stars: ✭ 85 (-89.43%)
Mutual labels:  push-notifications, apns, gcm
Onesignal Unity Sdk
OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your Unity app with OneSignal. https://onesignal.com
Stars: ✭ 161 (-79.98%)
Mutual labels:  gcm, push-notifications, apns
Onesignal Ionic Example
Stars: ✭ 89 (-88.93%)
Mutual labels:  gcm, push-notifications, apns
Notificationpusher
Standalone PHP library for easy devices notifications push.
Stars: ✭ 1,143 (+42.16%)
Mutual labels:  gcm, push-notifications, apns
Django Push Notifications
Send push notifications to mobile devices through GCM or APNS in Django.
Stars: ✭ 1,881 (+133.96%)
Mutual labels:  gcm, push-notifications, apns
Onesignal Cordova Sdk
OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your Ionic, PhoneGap CLI, PhoneGap Build, Cordova, or Sencha Touch app with OneSignal. Supports Android, iOS, and Amazon's Fire OS platforms. https://onesignal.com
Stars: ✭ 214 (-73.38%)
Mutual labels:  gcm, push-notifications, apns
Pushnotification
PHP and Laravel Package to send push notifications to Android and IOS devices.
Stars: ✭ 395 (-50.87%)
Mutual labels:  gcm, push-notifications, apns
Socket.io Push
整合了小米,华为,友盟,谷歌,苹果推送的统一解决方案
Stars: ✭ 605 (-24.75%)
Mutual labels:  push-notifications, apns
Gunfish
No description or website provided.
Stars: ✭ 35 (-95.65%)
Mutual labels:  push-notifications, apns
apns2
Node client for connecting to Apple's Push Notification Service using the new HTTP/2 protocol with JSON web tokens
Stars: ✭ 66 (-91.79%)
Mutual labels:  push-notifications, apns
aioapns
An efficient APNs Client Library for Python/asyncio
Stars: ✭ 60 (-92.54%)
Mutual labels:  push-notifications, apns
Aerogear Unifiedpush Server
🚀 AeroGear UnifiedPush Server
Stars: ✭ 432 (-46.27%)
Mutual labels:  push-notifications, apns
andpush
Android Push Notification in Ruby: The fastest client for FCM (Firebase Cloud Messaging)
Stars: ✭ 83 (-89.68%)
Mutual labels:  push-notifications, gcm
pushex
Push notifications for Elixir
Stars: ✭ 96 (-88.06%)
Mutual labels:  apns, gcm
PUSHTestFCM
[FireMonkey] Push test project
Stars: ✭ 17 (-97.89%)
Mutual labels:  apns, gcm
mod push appserver
Simple and extendable appserver for XMPP pushes (aka. XEP-0357)
Stars: ✭ 24 (-97.01%)
Mutual labels:  push-notifications, apns
ejabberd mod apns
An ejabberd module to send PUSH messages to iOS devices through APNS
Stars: ✭ 31 (-96.14%)
Mutual labels:  push-notifications, apns

Gaurun GitHub release GitHub Actions

logo

Gaurun is a general push notification server written in Golang. It proxies push requests to APNs and FCM and asynchronously executes them via HTTP/2. It helps you when you need to bulkly sends push notification to your users (e.g., when you need to exec 10 million push at once!) or when some other API server which must response quickly needs to push. Since it leverages Golang's powerful concurrent feature, it gives high performance.

In addition to performance, it's important not to lost pushes over sever crashes or hardware failures. Gaurun can use its access log for kind of transaction journal and can re-push only failed notification later (We provide a special command for this. See Usage).

Currently we support the following platforms:

Status

Production ready.

Installation

There are two way to install Gaurun; using a precompiled binary or install from source. Downloading a precompiled binary is easiest and recommended.

To install a precompiled binary, download the appropriate zip package for your OS and architecture from here. Once the zip is downloaded, unzip it and place the binary where you want to use (if you want to access it from the command-line, make sure to put it on $PATH).

To compile from source, you need Go1.13 or later. After setup, then clone the source code by running the following command,

$ git clone https://github.com/mercari/gaurun.git

To fetch dependencies and build, run the following make tasks,

make

Usage

To run gaurun, you must provide configuration path via -c option (See CONFIGURATION.md about details),

$ bin/gaurun -c conf/gaurun.toml

Use -help to see more options.

Crash Recovery

Gaurun can recover from server crashes or hardware failures while pushing. It can use its access log for kind of transaction journal and can re-push only failed notifications later. We provide the special command for this, use it like the following (assuming that access log is generated to /tmp/gaurun.log),

$ bin/gaurun_recover -c conf/gaurun.toml -l /tmp/gaurun.log

Configuration

See CONFIGURATION.md about details.

NOTE: The default configuration is just for development and not high performant. For production usage, tune the performance with some parameters such as workers and queues and pusher_max in the core section.

Specification

API specification is defined on SPEC.md.

Contribution

Please read the CLA below carefully before submitting your contribution.

https://www.mercari.com/cla/

License

Copyright 2014-2019 Mercari, Inc.

Licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].