Docs
Validate OpenRTB in Rust
rtblint-core on crates.io is the engine itself: everything the CLI, npm package, and MCP server do runs through this crate.
Use the crate
cargo add rtblint-core
use rtblint_core::{validate_bid_request_for_version, OpenRtbVersion};
let result = validate_bid_request_for_version(OpenRtbVersion::V2_6_202606, payload);
for issue in &result.issues {
println!("{} {} {:?}", issue.severity, issue.id, issue.path);
}Versions are a typed enum covering every tracked snapshot from 2.0 through 3.0, so an unsupported version is a compile error, not a runtime surprise. Issues carry the stable ids documented in the rule reference.
Why in-process validation matters for bidders
A Rust exchange or bidder can lint traffic on the hot path: sample one request in a thousand through the validator and you get continuous conformance monitoring for the cost of microseconds, catching a partner's schema drift the day it ships rather than in the quarterly revenue review.
The same engine everywhere
The CLI wraps this crate, the npm package is its WASM build, the online tester runs that WASM in your browser, and the MCP server exposes it to AI agents. Findings agree across all of them by construction. Source is on GitHub.