Skip to main content

Crate commonwl

Crate commonwl 

Source
Expand description

§CommonWL

🦆 Continuous Integration Crates.io License Crates.io Version Crates.io MSRV Crates.io Total Downloads

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.8", 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:

BackendStatusOverall 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

DFG project number 501899475

Modules§

documents
engineengine
files
format
inputs
outputs
packed
requirements
storageengine
types
validate

Macros§

guard

Structs§

FileMetaData
FilePathMetaData

Enums§

BoolOrExpression
Error
Integer
IntegerOrExpression
NumberOrExpression
OneOrMany

Traits§

ExtractFromEnum
Identifiable

Functions§

docstring
from_str
Loads a CWLDocument from a string, may be packed or unpacked
get_file_metadata
Tries to retrieve FileMetaData for given Path
get_path_metadata
load_cwl_file
Loads and may preprocesses a CWLDocument from Disk
preprocess_cwl_file
Preprocesses the $import sections of CWL Files
value_as_string
Returns String, Number or Bool as String

Type Aliases§

Result

Derive Macros§

Identifiable
Derive Macro for Identifiable