A lightweight third-party broadcast library
Project description
broadcast-service
A lightweight python broadcast library. You can easily construct a Broadcast pattern/Publish subscriber pattern through this library.
Features
- A publishing subscriber pattern can be built with a very simple syntax
- Support different application scenarios, such as asynchronous and synchronous
- Provide different syntax writing modes for lambda, callback functions, decorators, etc
Setup
pip install broadcast-service
Usage
There is a easy demo to show how to use broadcast-service.
from broadcast_service import broadcast_service
# callback of common method
def handle_msg(params):
print(f"handle_msg receive params: {params}")
# callback of decorator
@broadcast_service.on_listen(['my_topic'])
def handle_decorator_msg(params):
print(f"handle_decorator_msg receive params: {params}")
if __name__ == '__main__':
info = 'This is very important msg'
# subscribe topic
broadcast_service.subscribe('my_topic', handle_msg)
# publish broadcast
broadcast_service.publish('my_topic', info)
-
You can use
publish, emit, broadcast
to send your topic msg and uselisten, on, subscribe
to listen your topic msg. -
You can also add more arguments or no argument when you publish thr broadcast.
from broadcast_service import broadcast_service
# subscribe topic
@broadcast_service.on_listen(['my_topic'])
def handle_msg(info, info2):
print(info)
print(info2)
if __name__ == '__main__':
info = 'This is very important msg'
info2 = 'This is also a very important msg.'
# publish broadcast
broadcast_service.publish('my_topic', info, info2)
from broadcast_service import broadcast_service
# subscribe topic
@broadcast_service.on_listen(['my_topic'])
def handle_msg():
print('handle_msg callback')
if __name__ == '__main__':
# publish broadcast
broadcast_service.publish('Test')
You can use decorator to subscirbe your
Actually, you can see more example in example and tests.
TODO
- optimize documents and show more examples.
optimize the syntax expression of broadcast-service- provide more test cases
- privide the ability to subscribe the topic and callback once
- Support for fuzzy subscriptions
Contribution
If you want to contribute to this project, you can submit pr or issue. I am glad to see more people involved and optimize it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.