Docs

CLI and library

The tester is the rtblint Rust core compiled to WebAssembly. The same core runs as a command-line tool and as a Rust library, so a check you see in the browser is the check you can gate a build on.

CLI

Validate a bid request from a file or from stdin:

# validate a file
rtblint validate request.json

# validate from stdin
cat request.json | rtblint validate --stdin

# pin a specific tracked version
rtblint validate request.json --version 2.6-202505

# machine-readable output for CI
rtblint validate request.json --format json

The JSON output carries the same shape as the tester: a valid flag and an issues array, each issue with an id, severity, message, and path. Match on the id to fail a pipeline on errors while letting warnings through.

Rust library

Use rtblint-core to validate in-process, with no subprocess:

use rtblint_core::validate;

let result = validate(&bid_request_json);
if !result.valid {
    for issue in &result.issues {
        eprintln!("{} [{}] {}", issue.severity, issue.id, issue.message);
    }
}

validate targets the latest tracked 2.6 snapshot; validate_bid_request_for_version pins a specific one.

Packages

  • rtblint-core: the Rust validation library (crates.io)
  • rtblint: the Rust CLI (crates.io)
  • rtblint-mcp: the MCP server crate

The npm, Python, and Go packages are reserved and currently stub releases; the working surfaces today are the Rust core, the CLI, and this WebAssembly-backed tester. Track progress on GitHub.

Start from the bid request tester to see the output, then wire the same checks into your pipeline.