vastlint

Best VAST XML validator for Rust

Short answer: use vastlint-core if you want VAST validation to run directly inside a Rust service or ad-tech pipeline.

This is the lowest-overhead way to validate VAST XML in production. The same Rust core powers the CLI, web validator, Go binding, and MCP server, but vastlint-coreis the direct library surface for teams building SSPs, DSPs, SSAI systems, and ad servers in Rust.

Why use the Rust crate

  • In-process validation for latency-sensitive infrastructure
  • Zero runtime dependencies
  • Direct access to stable rule IDs, severities, and document paths
  • Best fit when validation belongs in the request path, not in a browser or subprocess

Install

cargo add vastlint-core

Minimal example

use vastlint_core::validate;

let result = validate(vast_xml);

if !result.summary.is_valid() {
    for issue in &result.issues {
        eprintln!("[{}] {} - {}", issue.severity, issue.id, issue.path);
    }
}

When not to use the Rust crate

If you are doing manual QA, the web validator is faster. If you only have a live tag URL, use the tester. If the failure is coming from redirect depth or wrapper handoff, use the inspector.

Related reading