harmoney

Distributed Function Caller Framework for Python

https://github.com/kphanipavan/harmoney

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.9%) to scientific vocabulary

Keywords

distributed python rpc
Last synced: 6 months ago · JSON representation ·

Repository

Distributed Function Caller Framework for Python

Basic Info
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Topics
distributed python rpc
Created 12 months ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

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 ```python

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.

```python

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.

```python

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

Owner

  • Name: Phani Pavan Kambhampati
  • Login: kphanipavan
  • Kind: user
  • Location: BLR

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Kambhampati"
  given-names: "Phani Pavan"
  orcid: "https://orcid.org/0000-0001-7197-728X"
title: "Harmoney: Simple Distributed Function Calling Framework"
version: 0.3.0
doi: 10.5281/zenodo.15016790
date-released: 2025-03-03
url: "https://github.com/kphanipavan/harmoney"

GitHub Events

Total
  • Release event: 3
  • Delete event: 2
  • Push event: 7
  • Create event: 5
Last Year
  • Release event: 3
  • Delete event: 2
  • Push event: 7
  • Create event: 5

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 25 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
pypi.org: harmoney

Scalable Remote Function Calling Framework

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 25 Last month
Rankings
Dependent packages count: 9.6%
Average: 31.7%
Dependent repos count: 53.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

pyproject.toml pypi
  • fastapi >=0.115.8
  • pydantic >=2.10.6
  • requests >=2.31.0
  • uvicorn >=0.34.0
  • websockets >=15.0
requirements.txt pypi
  • fastapi *
  • pydantic *
  • requests *
  • websockets *