Skip to content

kphanipavan/harmoney

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

rou.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

About

Distributed Function Caller Framework for Python

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages