CommonWL
A Rust-framework for the Common Workflow Language (CWL) that supports parsing and execution.
Overview
commonwl is a Rust-based library crate supporting parsing and executing CWL Workflows and Tools. It is based on the headless task execution framework crankshaft. It is developed to being used in the Scientific Workflow Infrastructure (SciWIn).
There is a conformance CLI which is being used to evaluate CWL Conformance.
Getting Started
Installation
To use commonwl, you need to install and setup a Rust environment.
Once Rust is installed, you can add the latest version of commonwl be using the following command
To use the execution engine, the engine feature needs to be enabled!
= { = "0.1", = ["engine"] }
CWL Engine
The CWL Engine features high conformance to the specification, passing all Tests for Workflow and ExpressionTool and nearly all tests for CommandLineTool. The conformance is dependent on the used TaskBackend. Currently there are the following existing and planned backends:
| Backend | Status | Overall Conformance |
|---|---|---|
| Local | โ๏ธ | |
| Docker* | โ๏ธ | |
| TES | ๐๏ธ | - |
| Slurm | ๐งพ | - |
โ๏ธ: Fully operational - ๐๏ธ: Under Construction - ๐งพ: Planned
*=Uses Docker even if DockerRequirement is not specified.
Two tests fail due to f64 overflow outputting 1e42 instead of one with 42 zeros. serde_json stores all numbers as f64.
License
This work is dual-licensed under Apache 2.0 and MIT . You can choose between one of them if you use this work.
SPDX-License-Identifier: Apache-2.0 OR MIT
Funded by

DFG project number 501899475