mqsrv
mqsrv is a message queue-based Remote Procedure Call (RPC) and event publish/subscribe system. It provides a flexible framework for building distributed systems and microservice architectures.
Features
- Supports both synchronous and asynchronous RPC calls
- Event publishing and subscription mechanism
- Connection pool management
- Exception handling
- Flexible serialization options
- Concurrent processing based on greenthread
Installation
pip install mqsrv
Quick Start
RPC Example
Server Side
from mqsrv.server import make_server, run_server
def hello(name):
return f"Hello, {name}!"
server = make_server(conn='amqp://guest:guest@localhost:5672//',
rpc_routing_key='rpc_queue')
server.register_rpc(hello)
run_server(server)
Client Side
from mqsrv.client import make_client
client = make_client(conn='amqp://guest:guest@localhost:5672//')
caller = client.get_caller('rpc_queue')
error, result = caller.hello('World')
print(result) # Output: Hello, World!
Event Example
Subscriber
from mqsrv.server import make_server, run_server
def handle_user_registered(evt_type, evt_data):
print(f"New user registered: {evt_data['username']} (ID: {evt_data['user_id']})")
server = make_server(conn='amqp://guest:guest@localhost:5672//',
event_routing_keys=['event_queue'])
server.register_event_handler('user_registered', handle_user_registered)
run_server(server)
Publisher
from mqsrv.client import make_client
client = make_client(conn='amqp://guest:guest@localhost:5672//')
publisher = client.get_pubber('event_queue')
publisher('user_registered', {'user_id': 123, 'username': 'john_doe'})
License
This project is licensed under the MIT License.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mqsrv-0.1.3.tar.gz
(9.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
mqsrv-0.1.3-py3-none-any.whl
(10.2 kB
view details)
File details
Details for the file mqsrv-0.1.3.tar.gz.
File metadata
- Download URL: mqsrv-0.1.3.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/5.1.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3728bcbb2118e4a5cca5aff2de141b60518abdbc4c020dd256bc71337394821d
|
|
| MD5 |
a6332e404ef9be49cff5d9b1d90fb6a8
|
|
| BLAKE2b-256 |
0cf541946d0e8f385c1a2f67edb02b7ec6a55971d9778074a3ecae98893f5546
|
File details
Details for the file mqsrv-0.1.3-py3-none-any.whl.
File metadata
- Download URL: mqsrv-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/5.1.1 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b68350e2d3a7d57e0263a98ab3da5a15a42b111abcd6b4aee394800e45de2c2
|
|
| MD5 |
88ad8e5ca1062c11802c4ce46343a58b
|
|
| BLAKE2b-256 |
c5e17cdf595109325d4ea971c8ab9b3288cf817ca519573d6488a63ec01c2b7d
|