Rapid RPC Framework for your Python services using Asyncio + MsgPack
Project description
⚡️electron
Rapid RPC Framework for building Python 3.7+ services using Asyncio + MsgPack
Installation
$ pip install electron-rpc
How does it work?
Create a server instance with a single endpoint sum() which outputs the sum of two values:
from electron import Server
app = Server()
@app.endpoint("sum")
async def sum(a, b, **kwargs):
return f"Result: {a + b}"
app.run()
__ __
___ / /__ _____/ /__________ ____
/ _ \/ / _ \/ ___/ __/ ___/ __ \/ __ \
/ __/ / __/ /__/ /_/ / / /_/ / / / /
\___/_/\___/\___/\__/_/ \____/_/ /_/
⚡ electron build v0.0.4
Listening on 127.0.0.1:9999
Registered Endpoints:
- sum
Calling the endpoint from a client
electron uses MsgPack-RPC, so craft a payload and send it over TCP:
import socket
from electron.messages import RemoteProcedureCall
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("127.0.0.1", 9999))
sock.send(RemoteProcedureCall(endpoint="sum", args=[1, 2]).encode())
data = sock.recv(1024)
print(f"Received: \n{data.decode()}")
sock.close()
Received:
Result: 3
Background Tasks
To create a background task, decorate it with @app.background(time_in_seconds):
@app.background(3)
async def some_background_task():
print("Running background task every 3 seconds")
Now the task will execute every 3 seconds.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
File details
Details for the file electron-rpc-0.0.4.tar.gz.
File metadata
- Download URL: electron-rpc-0.0.4.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.20.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5f742512030981c3464226db8031febceabe33dc854d2fc232c072d7f001c64
|
|
| MD5 |
4a70f0a72ccc00588d40a83de4043bda
|
|
| BLAKE2b-256 |
d99b98e55dea58983c5792d9ebab9ee6afa42f3ec53835d18ad365769efc6e8e
|
File details
Details for the file electron_rpc-0.0.4-py3-none-any.whl.
File metadata
- Download URL: electron_rpc-0.0.4-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.20.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b605dcfe311e2243cee3d91b8b9f86e546cba5fb21e693c972aa29858ed6be28
|
|
| MD5 |
d897d20621f0afd3f099297f3fdbce09
|
|
| BLAKE2b-256 |
a4b30f4915c701d350126636f0822d0e6acc81d8878f8b1bb56fab201e68ed24
|