codedge-llc / pigeon

iOS and Android push notifications for Elixir
https://hex.pm/packages/pigeon
MIT License
645 stars 145 forks source link
adm amazon android apns elixir fcm hex ios

logo

HTTP2-compliant wrapper for sending iOS and Android push notifications.

CI Version Total Downloads License Last Updated Documentation

Pigeon v2.0 is in release candidate status. See the latest stable 1.6 on Hex or the 1.6 branch on GitHub for installation.

Installation

Add :pigeon and as a mix.exs dependency:

def deps do
  [
    {:pigeon, "~> 2.0.0-rc.3"}
  ]
end

Getting Started

Check the module documentation for your push notification service.

Creating Dynamic Runtime Dispatchers

Pigeon can spin up dynamic dispatchers for a variety of advanced use-cases, such as supporting dozens of dispatcher configurations or custom connection pools.

See Pigeon.Dispatcher for instructions.

Writing a Custom Dispatcher Adapter

Want to write a Pigeon adapter for an unsupported push notification service?

See Pigeon.Adapter for instructions.

Contributing

Testing

Unit tests can be run with mix test or mix coveralls.html. Environment variables will need to be set for various credentials. See config/test.exs for the full list.

Formatting

This project uses Elixir's mix format and Prettier for formatting. Add hooks in your editor of choice to run it after a save. Be sure it respects this project's .formatter.exs.

Commits

Git commit subjects use the Karma style.

License

Copyright (c) 2015-2024 Codedge LLC (https://www.codedge.io/)

This library is MIT licensed. See the LICENSE for details.