b-rabbit
RabbitMQ without headache.
b-rabbit is a RabbitMq client library that aims to make interfacing with RabbitMQ easier. It is very useful especially inside large projects, in which many boilerplate code must be written.
I started this project when I was working on a large microservices-based project in a large team. I decided to open-source the project afterwards.
Free software: MIT license
Documentation: https://b-rabbit.readthedocs.io.
Features
it implements all RabbitMQ messaging patterns.
provides an easy high level API (take a look at the examples)
thread safe
When you should use it
if you are having problems with other non thread safe libraries (like I did)
if you want to develop fast by using a high level API
if you don’t want to write much code and save much time
if you want to use multithreading
Quick Usage
import the library:
from b_rabbit import BRabbit
create a parent instance which provide a global rabbitMQ connection
rabbit = BRabbit(host='localhost', port=5672)
now, just one liner to publish a message:
publisher = rabbit.EventPublisher(b_rabbit=rabbit,
publisher_name='pub').publish(routing_key='testing.test',
payload='Hello from publisher')
or if you want to subscribe and listen to a certain topic:
def callback(msg):
# do something with the received msg from the publisher
print(f"msg received: {msg}")
# subscribe and run a listener in a thread
subscriber = rabbit.EventSubscriber(
b_rabbit=rabbit,
routing_key='testing.test',
publisher_name='pub',
event_listener=callback).subscribe_on_thread()
Advanced Usage using RPC
task requester
from b_rabbit import BRabbit
def taskResponseListener(body):
print('Task Response received')
print(str(body))
rabbit = BRabbit(host='localhost', port=5672)
taskRequesterSynchron = rabbit.TaskRequesterSynchron(b_rabbit=rabbit,
executor_name='test',
routing_key='testing.test',
response_listener=taskResponseListener)
taskRequesterSynchron.request_task('msg from requester')
rabbit.close_connection()
task responser (server)
from b_rabbit import BRabbit
import time
rabbit = BRabbit(host='localhost', port=5672)
def taskListener(server, body):
print('Task Request received')
print(str(body))
time.sleep(5)
server.send_return(payload="return this value to requester")
taskExecuter = rabbit.TaskExecutor(b_rabbit=rabbit,
executor_name='test',
routing_key='testing.test',
task_listener=taskListener).run_task_on_thread()
Further
Take a look in the examples folder for more. b_rabbit implements also the remote procedure call (RPC) pattern
Metadata
Release files for b-rabbit 1.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| b_rabbit-1.2.5.tar.gz | 17.2 kB | Without provenance | Details for b_rabbit-1.2.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| b_rabbit-1.2.5-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details for b_rabbit-1.2.5-py2.py3-none-any.whl |
Total release size: 26.4 kB
Release files / b_rabbit-1.2.5.tar.gz
| Download URL | b_rabbit-1.2.5.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ff0d0cf2c667219c5d4ccd3aee30549c51ca9c45667a0479c2631eb00a4a18b4
|
|
BLAKE2b-256 checksum How to use checksums |
0eba39057e5e6b3de80dfd4edd492ab367d1929ca967e7bde98571b0e57967a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
|
Release files / b_rabbit-1.2.5-py2.py3-none-any.whl
| Download URL | b_rabbit-1.2.5-py2.py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
55583f18eb5c3657614a96410ac37466f3456f6a2ff8ca0e6de57c328b3aab6d
|
|
BLAKE2b-256 checksum How to use checksums |
35488bc3c5f30d8f120a83b365c9914a8741e1f0db267e69bfd746b228e3ebb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
|
Security for b-rabbit 1.2.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.