harmoney DOI

Distributed Function Caller Framework for Python

Installation:

pip install harmoney

Dependencies:

  • websockets
  • fastapi
  • requests
  • uvicorn
  • pydantic

Usage:

Requires 3 scripts: Client, Broker and Runner

  • Broker will mediate load balancing and connection handling, so this should start first. One port should be open.

Let broker's IP be 192.168.0.110 and port be 7732


from harmoney import router as rou

ro.startRouter("0.0.0.0", 7732)
  • Runner performs the calculations, should contain function definitions. Connects to broker using broker's IP.

from harmoney import runners as run

def customFunction(arg1: int, arg2: str) -> str:
    return arg2*arg1

funcs = {"custFn": customFunction}

run.startRunner(funcs, "192.168.0.110", 7732)
  • Client is the main caller of functions. Will contain your main code.

from harmoney import client as cli

cli.Client("192.168.0.110", 7732)

retVal = cli.runSingle("custFn", arg1=10, arg2="arst")

print(retVal)

TODO:

  • Error catching, keeping the connection to the broker
  • Error info should return to the client
  • Remove dependency on fastapi and requests, move to completely to websockets
Description
Distributed Function Caller Framework for Python
Readme AGPL-3.0 Cite this repository 76 KiB
0.3.0 Latest
2025-03-13 08:51:18 +00:00
Languages
Python 100%