pushbaby

APNS library using gevent


Keywords
apns, push
License
Apache-2.0
Install
pip install pushbaby==0.0.1

Documentation

Introduction

PushBaby is a simple APNS library using gevent. PushBaby aims to do the hard bits of APNS for you and no more. It handles:

  • Packing APNS messages into the binary payload format
  • Establishing and reestablishing SSL connections
  • Receiving and propagating errors to your application, asynchronously
  • Encoding pushes to JSON using efficient encoding
  • Truncating messages to fit APNS
  • Retrying pushes on nonfatal errors

PushBaby takes APNS payloads as dictionaries: it does not attempt to construct them for you.

PushBaby does not load balance over multiple connections, although this is something that would be considered in the future.

If you use PushBaby, remember that the rest of your application must be gevent compatible, or you'll find PushBaby won't do important things like receive errors.

Why PushBaby?

There are many alternative APNS libraries for Python, for example:

applepushnotification
https://github.com/martinkou/applepushnotification Similar, gevent-based library. Unmaintained.
apns
https://github.com/djacobs/PyAPNs Uses pure python threads but will not always feed back errors if pushes can't be sent to the gateway.
pyapns
https://github.com/samuraisam/pyapns/tree/master A full-featured XML-RPC HTTP-to-APNS server.
apns-clerk
https://bitbucket.org/aleksihoffman/apns-clerk Fork of apns-client. Waits for error responses but means all calls to send a push block synchronously for some time.
APNSWrapper / HypnoAPNSWrapper
https://code.google.com/p/apns-python-wrapper/ Unmaintained. Uses openssl s_client.
apns-client
https://bitbucket.org/sardarnl/apns-client Unmaintained