Viash takes your script and metadata to turn it into a reusable component.

By providing some metadata regarding its functionality and the platform on which you want to run the software, Viash can help you turn scripts into an executable component.

Viash requires two main inputs: a script and a Viash config file. A Viash config file is a YAML file with metadata describing the functionality provided by the component and platform-specific metadata. This metadata is then used to generate an executable and optionally a Docker container and/or Nextflow module to run it in.

Functional advantages

Script to data workflow

Viash uses code generation to create a reusable workflow building block from your script that can be used seamlessly in your data workflow.

Fast data workflow prototyping

You can create a workflow building block by writing a small script, adding some metadata, and using Viash to generate the boilerplate code.

Viash for scientific computing

As a computer scientist, you can focus on implementing the functionality using the domain-specific toolkit at hand without worrying about the chosen data workflow framework.

Viash for R&D workflow development

As an R&D workflow developer, you can design a data workflow by chaining together workflow building blocks and experiment with alternative execution strategies while being agnostic to the scripting language used in the components.

Standardized API for inputs and outputs

After describing your inputs and outputs and their types, it’s trivial to link the workflow building blocks with each other. This allows you to experiment with an alternative execution order.

Scalable and reproducible

High-quality code generation eliminates errors and creates a stable, platform-independent architecture using containerization, without requiring expert knowledge.

Technical advantages

Polyglot

With Viash, you can use your preferred scripting language, or even mix and match as you please. Supported languages include: Bash, Python, R, Scala, JS and C#.

Flexible & modular

A Viash component can be exported as a standalone or Docker executable or as a modular Nextflow module.

Unit testing

Viash components come with unit testing built in, making debugging easier. Test all components, even while using them in a data pipeline.

All-inclusive executable

Every executable built by Viash comes with an intuitive CLI automatically. This includes command-line arguments, type-checking, checking of required parameters and ensuring the existence of required input files.

Nextflow integration

Viash generates Nextflow modules from your component to create portable and scalable data pipelines that run platform independent.

Containerization

Reproducibility by design. A custom Docker container is automatically generated based on your dependencies described in your metadata.