wdl-modules 0.2.0

Implementation of the WDL module specification
Documentation

Implementation of the WDL module specification.

wdl-modules provides the local, deterministic pieces of WDL module handling: module.json manifest parsing, module-lock.json lockfile parsing, symbolic import paths, deterministic content hashing, Ed25519 module.sig signing and verification, SPDX license validation, and module file-tree checks.

Quickstart

Parse module.json with [Manifest::parse], parse module-lock.json with [Lockfile::parse], and compute a content hash with [hash::hash_directory]. These entry points reject duplicate JSON object keys, invalid relative paths, invalid dependency declarations, and module trees that violate the reserved-filename or Unicode-normalization rules.

use wdl_modules::Manifest;

let manifest = Manifest::parse(
    br#"{
        "name": "spellbook",
        "version": "1.0.0",
        "license": "MIT"
    }"#,
)?;

assert_eq!(manifest.name, "spellbook");
# Ok::<(), Box<dyn std::error::Error>>(())