Rust-native bioinformatics
pipeline engine

Build, validate, and execute reproducible bioinformatics workflows with DAG-based execution, AI-powered pipeline generation, first-class environment management, cluster scheduling, and reproducible reporting — all from a single, fast Rust binary.

Core Capabilities

Everything you need to build production-grade bioinformatics pipelines.

🔀

DAG Execution Engine

Automatic dependency resolution, topological sorting, cycle detection, and parallel execution. Built with petgraph — proven on 1,000-rule stress tests.

📦

Environment Management

First-class support for conda, pixi, Docker, Singularity, Python venv, and HPC modules. Each rule declares its own isolated environment.

🖥️

Cluster Scheduling

Resource-aware scheduling across SLURM, PBS, SGE, and LSF backends. Rules declare CPU, memory, GPU, and disk requirements; the scheduler enforces them.

📊

Workflow Reporting

Modular HTML/JSON report generation with Tera templates. Execution summaries, resource metrics, and output file browsers for each pipeline run.

🌐

REST API & Web Interface

Built-in axum server with versioned REST API, RBAC (Admin/User/Viewer), rate limiting, and security headers.

🐳

Container Packaging

Export workflows to multi-stage Docker builds or Singularity images. Rootless containers with HEALTHCHECK support for portable, self-contained execution.

🤖

AI Companion

Contextual AI across the full workflow lifecycle: generate pipelines from natural language (Dashboard), get intelligent refinement suggestions (Editor), diagnose failures (Monitor), and interpret results (Report). Powered by Claude, OpenAI, DeepSeek, or local Ollama.

🔒

Security Hardened

Shell injection prevention, path traversal protection, secret scanning, per-IP rate limiting, and #![forbid(unsafe_code)] across every crate.

Rust Performance

Native binary — instant startup, fearless concurrency, zero-cost abstractions. Rust 2024 edition. 890 tests including 100 browser E2E scenarios.

Quick Start

From zero to running pipeline in a few commands.

# 1. Install cargo install oxo-flow-cli # 2. Scaffold a new project oxo-flow init my-pipeline cd my-pipeline # 3. Validate the workflow oxo-flow validate my-pipeline.oxoflow ✓ my-pipeline.oxoflow — valid # 4. Preview execution plan (dry-run) oxo-flow dry-run my-pipeline.oxoflow # 5. Execute with 8 parallel jobs oxo-flow run my-pipeline.oxoflow -j 8 # 6. Visualise the DAG oxo-flow graph my-pipeline.oxoflow > dag.dot dot -Tpng dag.dot -o dag.png # 7. Generate an HTML report oxo-flow report my-pipeline.oxoflow -f html -o report.html

The .oxoflow Format

Define your pipeline in clean, readable TOML. Wildcards like {sample} are expanded automatically based on input file discovery or explicit configuration.

# variant-calling.oxoflow [workflow] name = "variant-calling" version = "1.0.0" [config] reference = "/data/ref/GRCh38.fa" [[rules]] name = "fastp" input = ["raw/{sample}_R1.fastq.gz", "raw/{sample}_R2.fastq.gz"] output = ["trimmed/{sample}_R1.fastq.gz", "trimmed/{sample}_R2.fastq.gz"] threads = 8 shell = "fastp -i {input[0]} -I {input[1]} -o {output[0]} -O {output[1]}" [rules.environment] conda = "envs/fastp.yaml" [[rules]] name = "bwa_align" input = ["trimmed/{sample}_R1.fastq.gz", "trimmed/{sample}_R2.fastq.gz"] output = ["aligned/{sample}.bam"] threads = 16 memory = "32G" shell = "bwa-mem2 mem -t {threads} {config.reference} {input[0]} {input[1]} | samtools sort -o {output[0]}" [rules.environment] docker = "biocontainers/bwa-mem2:2.2.1"

CLI Commands

31 subcommands covering the complete workflow lifecycle — run, validate, dry-run, graph, cluster, serve, and more.

CLI Reference →

Installation

Three ways to get oxo-flow on your system.

Cargo (recommended)

cargo install oxo-flow-cli

Pre-built binary

# Linux (x86_64) curl -LO https://github.com/Traitome/oxo-flow/releases/latest/download/oxo-flow-x86_64-unknown-linux-gnu.tar.gz tar xzf oxo-flow-x86_64-unknown-linux-gnu.tar.gz sudo mv oxo-flow /usr/local/bin/ # macOS (Apple Silicon) curl -LO https://github.com/Traitome/oxo-flow/releases/latest/download/oxo-flow-aarch64-apple-darwin.tar.gz tar xzf oxo-flow-aarch64-apple-darwin.tar.gz sudo mv oxo-flow /usr/local/bin/

Build from source

git clone https://github.com/Traitome/oxo-flow.git cd oxo-flow cargo build --release # Binaries in target/release/ # oxo-flow (CLI) # oxo-flow-web (Web server)

Tech Stack

Built on battle-tested Rust crates and React 19. 890 tests including 100 browser E2E scenarios, with #![forbid(unsafe_code)] enforced across all crates.

Language
Rust 2024 edition
Frontend
React 19 + TypeScript
Async runtime
CLI framework
clap (derive)
Web framework
DAG viz
Graph library
Code editor
AI providers
Claude, OpenAI, DeepSeek, Ollama
Serialization
serde + TOML
Templating
Error handling
Logging

Licensing

Open-source core with a dual-license model for the web interface. The core library and CLI are free and open-source under Apache 2.0.

ComponentLicenseDetails
oxo-flow-core Apache 2.0 Free and open-source — use, modify, distribute without restriction
oxo-flow-cli Apache 2.0 Free and open-source — use, modify, distribute without restriction
oxo-flow-web Dual — Academic / Commercial Free for academic & non-commercial use; commercial use requires a paid license

Contributing & Community

Contributions are welcome. Read the guides below, ensure make ci passes, then open a PR.

📖

Documentation

Full guide · Workflow Gallery · Ask DeepWiki

🗺️

Project Resources

Roadmap · Contributing guide · Governance · Code of Conduct

🐛

Issues & Feedback

Bug reports · Feature requests · Known limitations

How to Cite

If you use oxo-flow in academic research, please cite our work:

Shixiang Wang
oxo-flow: compiled, memory-safe bioinformatics workflow orchestration
bioRxiv, 2026
doi:10.64898/2026.06.11.731578

Jia Ding, Yun Peng, Ruochen Wei, Boquan Wang, Jian-Guo Zhou, Shixiang Wang
BLIT: an R package for seamless integration of command-line bioinformatics tool universe
Bioinformatics Advances, Volume 6, Issue 1, 2026, vbag088
doi:10.1093/bioadv/vbag088

Get Started

Read the documentation, explore the gallery, or dive straight into the source.

Web API

48 endpoints across 7 domains. oxo-flow serve starts an axum-powered REST server. OpenAPI 3.1 spec at /api/openapi.json.

API Reference →

html> oxo-flow — Rust-native bioinformatics pipeline engine

Rust-native bioinformatics
pipeline engine

Build, validate, and execute reproducible bioinformatics workflows with DAG-based execution, AI-powered pipeline generation, first-class environment management, cluster scheduling, and reproducible reporting — all from a single, fast Rust binary.

Core Capabilities

Everything you need to build production-grade bioinformatics pipelines.

🔀

DAG Execution Engine

Automatic dependency resolution, topological sorting, cycle detection, and parallel execution. Built with petgraph — proven on 1,000-rule stress tests.

📦

Environment Management

First-class support for conda, pixi, Docker, Singularity, Python venv, and HPC modules. Each rule declares its own isolated environment.

🖥️

Cluster Scheduling

Resource-aware scheduling across SLURM, PBS, SGE, and LSF backends. Rules declare CPU, memory, GPU, and disk requirements; the scheduler enforces them.

📊

Workflow Reporting

Modular HTML/JSON report generation with Tera templates. Execution summaries, resource metrics, and output file browsers for each pipeline run.

🌐

REST API & Web Interface

Built-in axum server with versioned REST API, RBAC (Admin/User/Viewer), rate limiting, and security headers.

🐳

Container Packaging

Export workflows to multi-stage Docker builds or Singularity images. Rootless containers with HEALTHCHECK support for portable, self-contained execution.

🤖

AI Companion

Contextual AI across the full workflow lifecycle: generate pipelines from natural language (Dashboard), get intelligent refinement suggestions (Editor), diagnose failures (Monitor), and interpret results (Report). Powered by Claude, OpenAI, DeepSeek, or local Ollama.

🔒

Security Hardened

Shell injection prevention, path traversal protection, secret scanning, per-IP rate limiting, and #![forbid(unsafe_code)] across every crate.

Rust Performance

Native binary — instant startup, fearless concurrency, zero-cost abstractions. Rust 2024 edition. 890 tests including 100 browser E2E scenarios.

Quick Start

From zero to running pipeline in a few commands.

# 1. Install cargo install oxo-flow-cli # 2. Scaffold a new project oxo-flow init my-pipeline cd my-pipeline # 3. Validate the workflow oxo-flow validate my-pipeline.oxoflow ✓ my-pipeline.oxoflow — valid # 4. Preview execution plan (dry-run) oxo-flow dry-run my-pipeline.oxoflow # 5. Execute with 8 parallel jobs oxo-flow run my-pipeline.oxoflow -j 8 # 6. Visualise the DAG oxo-flow graph my-pipeline.oxoflow > dag.dot dot -Tpng dag.dot -o dag.png # 7. Generate an HTML report oxo-flow report my-pipeline.oxoflow -f html -o report.html

The .oxoflow Format

Define your pipeline in clean, readable TOML. Wildcards like {sample} are expanded automatically based on input file discovery or explicit configuration.

# variant-calling.oxoflow [workflow] name = "variant-calling" version = "1.0.0" [config] reference = "/data/ref/GRCh38.fa" [[rules]] name = "fastp" input = ["raw/{sample}_R1.fastq.gz", "raw/{sample}_R2.fastq.gz"] output = ["trimmed/{sample}_R1.fastq.gz", "trimmed/{sample}_R2.fastq.gz"] threads = 8 shell = "fastp -i {input[0]} -I {input[1]} -o {output[0]} -O {output[1]}" [rules.environment] conda = "envs/fastp.yaml" [[rules]] name = "bwa_align" input = ["trimmed/{sample}_R1.fastq.gz", "trimmed/{sample}_R2.fastq.gz"] output = ["aligned/{sample}.bam"] threads = 16 memory = "32G" shell = "bwa-mem2 mem -t {threads} {config.reference} {input[0]} {input[1]} | samtools sort -o {output[0]}" [rules.environment] docker = "biocontainers/bwa-mem2:2.2.1"

CLI Commands

31 subcommands covering the complete workflow lifecycle — run, validate, dry-run, graph, cluster, serve, and more.

CLI Reference →

Installation

Three ways to get oxo-flow on your system.

Cargo (recommended)

cargo install oxo-flow-cli

Pre-built binary

# Linux (x86_64) curl -LO https://github.com/Traitome/oxo-flow/releases/latest/download/oxo-flow-x86_64-unknown-linux-gnu.tar.gz tar xzf oxo-flow-x86_64-unknown-linux-gnu.tar.gz sudo mv oxo-flow /usr/local/bin/ # macOS (Apple Silicon) curl -LO https://github.com/Traitome/oxo-flow/releases/latest/download/oxo-flow-aarch64-apple-darwin.tar.gz tar xzf oxo-flow-aarch64-apple-darwin.tar.gz sudo mv oxo-flow /usr/local/bin/

Build from source

git clone https://github.com/Traitome/oxo-flow.git cd oxo-flow cargo build --release # Binaries in target/release/ # oxo-flow (CLI) # oxo-flow-web (Web server)

Tech Stack

Built on battle-tested Rust crates and React 19. 890 tests including 100 browser E2E scenarios, with #![forbid(unsafe_code)] enforced across all crates.

Language
Rust 2024 edition
Frontend
React 19 + TypeScript
Async runtime
CLI framework
clap (derive)
Web framework
DAG viz
Graph library
Code editor
AI providers
Claude, OpenAI, DeepSeek, Ollama
Serialization
serde + TOML
Templating
Error handling
Logging

Licensing

Open-source core with a dual-license model for the web interface. The core library and CLI are free and open-source under Apache 2.0.

ComponentLicenseDetails
oxo-flow-core Apache 2.0 Free and open-source — use, modify, distribute without restriction
oxo-flow-cli Apache 2.0 Free and open-source — use, modify, distribute without restriction
oxo-flow-web Dual — Academic / Commercial Free for academic & non-commercial use; commercial use requires a paid license

Contributing & Community

Contributions are welcome. Read the guides below, ensure make ci passes, then open a PR.

📖

Documentation

Full guide · Workflow Gallery · Ask DeepWiki

🗺️

Project Resources

Roadmap · Contributing guide · Governance · Code of Conduct

🐛

Issues & Feedback

Bug reports · Feature requests · Known limitations

How to Cite

If you use oxo-flow in academic research, please cite our work:

Shixiang Wang
oxo-flow: compiled, memory-safe bioinformatics workflow orchestration
bioRxiv, 2026
doi:10.64898/2026.06.11.731578

Jia Ding, Yun Peng, Ruochen Wei, Boquan Wang, Jian-Guo Zhou, Shixiang Wang
BLIT: an R package for seamless integration of command-line bioinformatics tool universe
Bioinformatics Advances, Volume 6, Issue 1, 2026, vbag088
doi:10.1093/bioadv/vbag088

Get Started

Read the documentation, explore the gallery, or dive straight into the source.