A bioinformatics workflow engine built on top of the Workflow Description Language (WDL).
Request Feature
·
Report Bug
·
⭐ Consider starring the repo! ⭐
## 🎨 Features
- **`sprocket analyzer`** Run Sprocket as a LSP server for IDE integration.
- **`sprocket check`** Performs static analysis on WDL documents.
- **`sprocket explain`** Explain lint rules.
- **`sprocket format`** Formats WDL documents.
- **`sprocket lint`** Performs static analysis on WDL documents with additional
linting rules enabled.
## Guiding Principles
- Provide a **high-performance** workflow execution engine capable of
orchestrating massive bioinformatics workloads (the stated target is 20,000+
concurrent jobs).
- Develop a suite of **modern development tools** that brings bioinformatics
development on par with other modern languages (e.g.,
[`wdl-lsp`](https://github.com/stjude-rust-labs/wdl/tree/main/wdl-lsp)).
- Maintain an **community-focused codebase** that enables a diverse set of
contributors from academic, non-profit, and commercial organizations.
- Build on an **open, domain-tailored standard** to ensure the toolset remains
singularly focused on unencumbered innovation within bioinformatics.
- Retain a **simple and accessible user experience** when complexity isn't warranted.
## 📚 Getting Started
### Installation
Before you can install `sprocket`, you'll need to install
[Rust](https://www.rust-lang.org/). We recommend using [rustup](https://rustup.rs/) to accomplish this. Once Rust is installed, you can install the latest version of `sprocket` by
running the following command.
```bash
cargo install sprocket
```
## 🖥️ Development
To bootstrap a development environment, please use the following commands.
```bash
# Clone the repository
git clone git@github.com:stjude-rust-labs/sprocket.git
cd sprocket
# Build the crate in release mode
cargo build --release
# Run the `sprocket` command line tool
cargo run --release
```
## 🚧️ Tests
Before submitting any pull requests, please make sure the code passes the
following checks (from the root directory).
```bash
# Run the project's tests.
cargo test --all-features
# Run the tests for the examples.
cargo test --examples --all-features
# Ensure the project doesn't have any linting warnings.
cargo clippy --all-features
# Ensure the project passes `cargo fmt`.
cargo fmt --check
# Ensure the docs build.
cargo doc
```
## 🤝 Contributing
Contributions, issues and feature requests are welcome! Feel free to check
[issues page](https://github.com/stjude-rust-labs/sprocket/issues).
## 📝 License
This project is licensed as either [Apache 2.0][license-apache] or
[MIT][license-mit] at your discretion.
Copyright © 2023-Present [St. Jude Children's Research Hospital](https://github.com/stjude).
[license-apache]: https://github.com/stjude-rust-labs/sprocket/blob/main/LICENSE-APACHE
[license-mit]: https://github.com/stjude-rust-labs/sprocket/blob/main/LICENSE-MIT