aioapns - An efficient APNs Client Library for Python/asyncio
aioapns is a library designed specifically for sending push-notifications to iOS devices via Apple Push Notification Service. aioapns provides an efficient client through asynchronous HTTP2 protocol for use with Python’s asyncio framework.
aioapns requires Python 3.8 or later.
Performance
In my testing aioapns allows you to send on average 1.3k notifications per second on a single core.
Features
Internal connection pool which adapts to the current load
Support for certificate and token based connections
Ability to set TTL (time to live) for notifications
Ability to set priority for notifications
Ability to set collapse-key for notifications
Ability to use production or development APNs server
Support for basic HTTP-Proxies
Installation
Use pip to install:
$ pip install aioapns
Basic Usage
import asyncio
from uuid import uuid4
from aioapns import APNs, NotificationRequest, PushType
async def run():
apns_cert_client = APNs(
client_cert='/path/to/apns-cert.pem',
use_sandbox=False,
)
with read('/path/to/apns-key.p8') as key:
apns_key_client = APNs(
key=key,
key_id='<KEY_ID>',
team_id='<TEAM_ID>',
topic='<APNS_TOPIC>', # Bundle ID
use_sandbox=False,
)
request = NotificationRequest(
device_token='<DEVICE_TOKEN>',
message = {
"aps": {
"alert": "Hello from APNs",
"badge": "1",
}
},
notification_id=str(uuid4()), # optional
time_to_live=3, # optional
push_type=PushType.ALERT, # optional
)
await apns_cert_client.send_notification(request)
await apns_key_client.send_notification(request)
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
License
aioapns is developed and distributed under the Apache 2.0 license.
Metadata
Release files for aioapns 4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aioapns-4.0.tar.gz | 14.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aioapns-4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.9 kB
Release files / aioapns-4.0.tar.gz
| Download URL | aioapns-4.0.tar.gz |
|---|---|
| Size | 14.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3715faabf3fa6c0240e7637f4427d88d08afdcceb0dcfb956c6d09b6f49427f8
|
|
BLAKE2b-256 checksum How to use checksums |
39511ce93531e9267e24151e659cf96a284506f5ba661bf09728a933c7437456
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Release files / aioapns-4.0-py3-none-any.whl
| Download URL | aioapns-4.0-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54bf57c14079f5643e3f458a75e4a31aaedd622be5c358f3efd5fd4aec831d0f
|
|
BLAKE2b-256 checksum How to use checksums |
9ad0da627f8349894a2941ca09fcaaf354d5038fc264e46275dce8fef5b839aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|