9 unstable releases (3 breaking)
Uses new Rust 2024
| new 0.5.4 | May 21, 2026 |
|---|---|
| 0.5.3 | May 21, 2026 |
| 0.4.2 | May 20, 2026 |
| 0.3.0 | May 13, 2026 |
| 0.1.2 | Mar 4, 2026 |
#130 in Science
Used in 3 crates
180KB
4.5K
SLoC
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
cargo add commonwl
To use the execution engine, the engine feature needs to be enabled!
commonwl = { version = "0.1", features = ["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
Dependencies
~17MB
~309K SLoC