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


_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.2"}

## Getting Started

Check the module documentation for your push notification service.

- [Pigeon.ADM]( - Amazon Android.
- [Pigeon.APNS]( - Apple iOS.
- [Pigeon.FCM]( - Firebase Cloud Messaging v1 API.
- [Pigeon.LegacyFCM]( - Firebase Cloud Messaging Legacy API.

### 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

### Commits

Git commit subjects use the [Karma style](

## License

Copyright (c) 2015-2023 Codedge LLC (

This library is MIT licensed. See the [LICENSE]( for details.