19 breaking releases

Uses new Rust 2024

new 0.20.0 Jan 12, 2026
0.19.0 Nov 24, 2025
0.18.0 Oct 14, 2025
0.15.0 Jul 31, 2025
0.1.0 Nov 22, 2023

#1115 in Data structures

Download history 272/week @ 2025-09-21 326/week @ 2025-09-28 188/week @ 2025-10-05 330/week @ 2025-10-12 200/week @ 2025-10-19 229/week @ 2025-10-26 75/week @ 2025-11-02 104/week @ 2025-11-09 180/week @ 2025-11-16 199/week @ 2025-11-23 369/week @ 2025-11-30 322/week @ 2025-12-07 386/week @ 2025-12-14 80/week @ 2025-12-21 49/week @ 2025-12-28 305/week @ 2026-01-04

831 downloads per month
Used in 10 crates (4 directly)

MIT/Apache

240KB
5.5K SLoC

Lexing and parsing for Workflow Description Language (WDL) documents.

This crate implements an infallible WDL parser based on the logos crate for lexing and the rowan crate for concrete syntax tree (CST) representation.

The parser outputs a list of parser events that can be used to construct the CST; the parser also keeps a list of [Diagnostic]s emitted during the parse that relate to spans from the original source.

See SyntaxTree::parse for parsing WDL source; users may inspect the resulting CST to determine the version of the document that was parsed.

Examples

An example of parsing WDL source into a CST and printing the tree:

use wdl_grammar::SyntaxTree;

let (tree, diagnostics) = SyntaxTree::parse("version 1.1");
assert!(diagnostics.is_empty());
println!("{tree:#?}");

Dependencies

~3.5–6MB
~109K SLoC