{"id":21324081,"url":"https://github.com/mcejp/graphexec","last_synced_at":"2025-07-12T05:31:58.920Z","repository":{"id":57435816,"uuid":"462831954","full_name":"mcejp/graphexec","owner":"mcejp","description":"Execute litegraph.js graphs server-side","archived":false,"fork":false,"pushed_at":"2022-03-26T12:48:39.000Z","size":207,"stargazers_count":25,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-13T11:14:03.212Z","etag":null,"topics":["node-graph","nodes"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcejp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-23T17:09:52.000Z","updated_at":"2024-09-23T15:54:02.000Z","dependencies_parsed_at":"2022-09-01T16:52:23.211Z","dependency_job_id":null,"html_url":"https://github.com/mcejp/graphexec","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcejp%2Fgraphexec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcejp%2Fgraphexec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcejp%2Fgraphexec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcejp%2Fgraphexec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcejp","download_url":"https://codeload.github.com/mcejp/graphexec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225798743,"owners_count":17525923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["node-graph","nodes"],"created_at":"2024-11-21T20:28:36.891Z","updated_at":"2024-11-21T20:28:37.441Z","avatar_url":"https://github.com/mcejp.png","language":"Python","readme":"# GraphExec\n\nGraphExec is a tool for executing [litegraph.js](https://github.com/jagenjo/litegraph.js) graphs on a server, with node operations implemented as Python functions.\n\nSlot types can be any Python types, including [NumPy](https://numpy.org/) arrays and custom, opaque classes.\n\nIt runs as a REST back-end for litegraph.js with some aftermarket modifications, or as a command-line tool. Generating JavaScript code for client-side _stub nodes_ (with slots, properties and widgets, but no business logic) is also possible, based on decorators added to the node implementation.\n\nFor each node, server-side code can return image results (including [Matplotlib](https://matplotlib.org/) figures).\n\nThe project is in an alpha development stage; for example, litegraph.js built-in nodes are not implemented, and there is no support for the REST back-end in the upstream library.\n\n![screenshot](doc/screenshot.png?raw=true)\n\n---\n\n## Usage\n\nWith my_node_types.py:\n\n```python\nfrom graphexec import node_type\n\nfrom .my_implementation import _perlin_noise\n\n@node_type.define(\"my_package/perlin_noise\", \"Perlin noise\")\n@node_type.input(\"width\", \"number\")\n@node_type.input(\"height\", \"number\")\n@node_type.output(\"map\", \"numpy.ndarray\")\ndef perlin_noise(width, height):\n    return dict(map=_perlin_noise(int(width), int(height)))\n\nNODE_TYPES = [\n    perlin_noise,\n]\n```\n\n    graphexec-generate-js-module -o ../litegraph/src/nodes/my-package-generated.js my_node_types\n    env PYTHONPATH=. graphexec-server --wwwroot ../litegraph -m my_node_types\n\n## Format check\n\n    black --diff **.py\n\n## Type check\n\n    mypy graphexec\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcejp%2Fgraphexec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcejp%2Fgraphexec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcejp%2Fgraphexec/lists"}