aio-sf-streaming is a simple Python 3.6 asyncio library allowing to connect and receive live notifications from Salesforce. This library is provided to you by papernest.
See The Force.com streaming API developer guide for more information about the different uses cases and how configure your Salesforce organization.
- asyncio compatible library
- Authentication with username/password or refresh token
- Subscribe to push topics and custom events
- Receive events pushed by Salesforce
- Auto-reconnect after too many time of inactivity
- Replay support: replay events missed while your client is disconnected (see Force.com documentation for more information).
aio-sf-streaming only support Python 3.6.
Simple use case:
import asyncio
from aio_sf_streaming import SimpleSalesforceStreaming
async def print_event():
# Create client and connect
async with SimpleSalesforceStreaming(
username='my-username',
password='my-password',
client_id='my-client-id',
client_secret='my-client-secret') as client:
# Subscribe to some push topics
await client.subscribe('/topic/Foo')
await client.subscribe('/topic/Bar')
async for message in client.events():
print(message)
# client will wait indefinitely, you can ask to exit
if message['channel'] == '/topic/Bar':
break
else:
# You can unsubscribe when you want, too
await client.unsubscribe('/topic/Foo')
loop = asyncio.get_event_loop()
loop.run_until_complete(print_event())Simply use pip:
$ pip install aio-sf-streamingAn online documentation is available.
The library work well for our use-case then we does not plan a lot of new features.
If you find any problem, feel free to fill an issue. Pull-Request are also welcomed.
You can install development dependencies with:
$ pip install -e .[tests,docs]- v. 0.3.0: Remove date-time parsing of the replay mixin, allow client to
customize
ReSubscribeMixinretry conditions, allow retry conditions to extend duration. - v. 0.2.0: Add refresh token authentication
- v. 0.1.1: Add documentation and initial typing information.
- v. 0.1.0: Initial release.
aio-sf-streaming is offered under the MIT license.