Skip to main content

A lightweight asynchronous DAG execution engine for Python and other languages

Project description

hyrrokkin

 _                               _     _     _
| |__   _   _  _ __  _ __  ___  | | __| | __(_) _ __
| '_ \ | | | || '__|| '__|/ _ \ | |/ /| |/ /| || '_ \
| | | || |_| || |   | |  | (_) ||   < |   < | || | | |
|_| |_| \__, ||_|   |_|   \___/ |_|\_\|_|\_\|_||_| |_|
        |___/

A lightweight asynchronous directed acyclic graph (DAG) execution engine for Python (CPython) and Javascript (Deno)

  • define packages of nodes using the python or javascript package API
  • create topologies which link nodes together using the python topology API
  • run topologies using the python topology API or CLI
  • attach clients to communicate with nodes while a topology is running

Installation Options

Hyrrokkin is tested on linux and requires python versions >= 3.11

Installation without dependencies (no support for YAML import/export, JSON schema checking):

pip install hyrrokkin

Installation with optional dependencies for YAML import/export:

pip install hyrrokkin[YAML]

Installation with optional dependencies for JSON schema validation:

pip install hyrrokkin[VALIDATION]

Installation with all optional dependencies

pip install hyrrokkin[VALIDATION,YAML]

To run topologies using the javascript engine, install deno - https://deno.com/

Documentation

https://hyrrokk.in/docs/hyrrokkin

Unit tests:

Python unit tests

These cover the hyrrokkin CLI and API, the python engine API, and the execution of textgraph topologies in various python and javascript engine configurations

Deno needs to be installed (see https://deno.com/).

Create a fresh python environment (using python 3.11 or later), then...

git clone https://codeberg.org/visual-topology/hyrrokkin.git
cd hyrrokkin
pip install -e .
pip install pyyaml jsonschema
export PYTHONPATH=$PYTHONPATH:test
python -m unittest

Building Documentation

Documentation is built using mkdocs which can be installed using:

pip install mkdocs
python -m pip install "mkdocstrings[python]"
python -m pip install mkdocs-material

Additional documentation for javascript APIs is buit using JSDoc - https://github.com/jsdoc/jsdoc

To build documentation:

git clone https://codeberg.org/visual-topology/hyrrokkin.git
cd hyrrokkin
pip install -e .
cd docs
./build.sh

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

hyrrokkin-0.1.4.tar.gz (606.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyrrokkin-0.1.4-py3-none-any.whl (705.1 kB view details)

Uploaded Python 3

File details

Details for the file hyrrokkin-0.1.4.tar.gz.

File metadata

  • Download URL: hyrrokkin-0.1.4.tar.gz
  • Upload date:
  • Size: 606.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for hyrrokkin-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f3e98d19f15bc7272077f88573769b2bfeb20d13abf7ab66526965f4b6f229b5
MD5 6f8457be9f39997ddfbcc4e651af88e2
BLAKE2b-256 a96d6778bdce8958f521962e345c5338b72912d6e4fdee30ec87b6334652f3d3

See more details on using hashes here.

File details

Details for the file hyrrokkin-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: hyrrokkin-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 705.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for hyrrokkin-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d23fcd7be33707d3bb46a51cbe8a57fc5e68a231e53d61ded8fc5e8056a4cf86
MD5 04c4b0093b955b3fe3ef3a32d7c003fc
BLAKE2b-256 0cd0b46ef07468f16bef1329f9f90fb73cfb85a59ad5a62bd36bc7e6e5e15b38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page