Hyperflow
HyperFlow: a scientific workflow engine
Install / Use
/learn @hyperflow-wms/HyperflowREADME
HyperFlow: a scientific workflow management system
Description
HyperFlow is a Workflow Management System (WMS) dedicated for scientific workflows.
Browse the wiki pages to learn more about the HyperFlow workflow model.
Getting started
Installation
- Install Node.js (http://nodejs.org)
- Install Redis (http://redis.io)
- Install HyperFlow:
- From npm package:
npm install -g @hyperflow/hyperflow - From github repository:<br>
npm install https://github.com/hyperflow-wms/hyperflow/archive/{version}.tar.gz<br>(where{version}is for examplev1.5.0) - From the master branch: <br>
npm install https://github.com/hyperflow-wms/hyperflow/archive/master.tar.gz
- From npm package:
Running locally
- Start the redis server:
redis-server - Run example workflows using command
hflow run <wf_directory>, for example:<br>hflow run ./examples/Sqrsum
Running locally using Docker images
- Use the latest Docker image for the HyperFlow engine, published in Docker Hub as
hyperflowwms/hyperflow - You can build the image yourself:
make container - Start redis container:<br>
docker run -d --name redis redis --bind 127.0.0.1 - Run workflow via HyperFlow container, for example:
docker run -a stdout -a stderr --rm --network container:redis \
-e HF_VAR_WORKER_CONTAINER="hyperflowwms/soykb-workflow-worker" \
-e HF_VAR_WORK_DIR="$PWD/input" \
-e HF_VAR_HFLOW_IN_CONTAINER="true" \
-e HF_VAR_function="redisCommand" \
-e REDIS_URL="redis://127.0.0.1:6379" \
--name hyperflow \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $PWD:/wfdir \
--entrypoint "/bin/sh" hyperflowwms/hyperflow -c "apk add docker && hflow run /wfdir"
Where
hyperflowwms/soykb-workeris the name of the workflow worker container (Soykb in this case)- current directory contains
workflow.json - subdirectory
inputscontains workflow input data
Outputs:
- Directory
inputswill contain files generated by the workflow run - Directory
inputs/logs-hfwill contain logs of all workflow jobs
Running in a Kubernetes cluster
See HyperFlow Kubernetes deployment project for more information.
Running in a distributed infrastructure using the RabbitMQ executor (not maintained)
- Start the RabbitMQ container:
docker run -d --name rabbitmq rabbitmq:3 - Add option
-e AMQP_URL=amqp://rabbitmq - More information in the hyperflow-amqp-executor project
- Warning: currently not maintained and not tested with latest HyperFlow versions
Local configuration files
You can provide workflow configuration through local configuration files:
workflow.config.json-- main configuration fileworkflow.config.{name}.json-- any number of secondary configuration files
The content from all configuration files will be merged and passed to workflow functions via context.appConfig. For example for files:
workflow.config.json:
{
"main": "mainValue"
}
workflow.config.foo.json:
{
"secondary": "secondaryValue"
}
The following will be passed in context.appConfig:
{
"main": "mainValue",
"foo": {
"secondary": "secondaryValue"
}
}
HyperFlow server
The HyperFlow engine can be started in a server mode using command: hflow start-server
If succesfully started, the server prints its URL:
HyperFlow server started at http://localhost:38775
Workflows can be run through the HyperFlow server as follows:
hflow run --submit=<hyperflow_server_url> <workflow_dir>
Currently <workflow_dir> must be a local directory accessbile by the server. This allows running multiple workflows (concurrently) using the same instance of the HyperFlow engine.
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
