[{"data":1,"prerenderedAt":1030},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Finstallation":335,"\u002Fgetting-started\u002Finstallation-surround":1025},[4,27,73,95,121,135,305,331],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"MSRV","\u002Fgetting-started\u002Fmsrv","1.getting-started\u002F9.msrv",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Schemas","i-lucide-shapes","\u002Fschemas","2.schemas",[33,37,41,45,49,53,57,61,65,69],{"title":34,"path":35,"stem":36},"Strings","\u002Fschemas\u002Fstrings","2.schemas\u002F1.strings",{"title":38,"path":39,"stem":40},"Custom rules","\u002Fschemas\u002Frules","2.schemas\u002F10.rules",{"title":42,"path":43,"stem":44},"Numbers","\u002Fschemas\u002Fnumbers","2.schemas\u002F2.numbers",{"title":46,"path":47,"stem":48},"Booleans, literals and enums","\u002Fschemas\u002Fprimitives","2.schemas\u002F3.primitives",{"title":50,"path":51,"stem":52},"Dates and times","\u002Fschemas\u002Fdates","2.schemas\u002F4.dates",{"title":54,"path":55,"stem":56},"Collections","\u002Fschemas\u002Fcollections","2.schemas\u002F5.collections",{"title":58,"path":59,"stem":60},"Dynamic objects","\u002Fschemas\u002Fobjects","2.schemas\u002F6.objects",{"title":62,"path":63,"stem":64},"Modifiers","\u002Fschemas\u002Fmodifiers","2.schemas\u002F7.modifiers",{"title":66,"path":67,"stem":68},"Combinators","\u002Fschemas\u002Fcombinators","2.schemas\u002F8.combinators",{"title":70,"path":71,"stem":72},"Other types","\u002Fschemas\u002Fspecial-types","2.schemas\u002F9.special-types",{"title":74,"icon":75,"path":76,"stem":77,"children":78,"page":26},"Structs","i-lucide-braces","\u002Fstructs","3.structs",[79,83,87,91],{"title":80,"path":81,"stem":82},"schema! macro","\u002Fstructs\u002Fschema-macro","3.structs\u002F1.schema-macro",{"title":84,"path":85,"stem":86},"#[derive(Validate)]","\u002Fstructs\u002Fderive","3.structs\u002F2.derive",{"title":88,"path":89,"stem":90},"Parse vs validate","\u002Fstructs\u002Fparse-vs-validate","3.structs\u002F3.parse-vs-validate",{"title":92,"path":93,"stem":94},"Lenient parsing","\u002Fstructs\u002Flenient","3.structs\u002F4.lenient",{"title":96,"icon":97,"path":98,"stem":99,"children":100,"page":26},"Errors","i-lucide-triangle-alert","\u002Ferrors","4.errors",[101,105,109,113,117],{"title":102,"path":103,"stem":104},"Error model","\u002Ferrors\u002Foverview","4.errors\u002F1.overview",{"title":106,"path":107,"stem":108},"Issue codes","\u002Ferrors\u002Fissue-codes","4.errors\u002F2.issue-codes",{"title":110,"path":111,"stem":112},"Formatting","\u002Ferrors\u002Fformatting","4.errors\u002F3.formatting",{"title":114,"path":115,"stem":116},"Custom messages","\u002Ferrors\u002Fcustom-messages","4.errors\u002F4.custom-messages",{"title":118,"path":119,"stem":120},"Translations","\u002Ferrors\u002Fi18n","4.errors\u002F5.i18n",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":26},"OpenAPI","i-lucide-file-json","\u002Fopenapi","5.openapi",[127,131],{"title":128,"path":129,"stem":130},"JSON Schema and OpenAPI","\u002Fopenapi\u002Fjson-schema","5.openapi\u002F1.json-schema",{"title":132,"path":133,"stem":134},"Schema diff","\u002Fopenapi\u002Fdiff","5.openapi\u002F2.diff",{"title":136,"icon":137,"path":138,"stem":139,"children":140,"page":26},"Integrations","i-lucide-plug","\u002Fintegrations","6.integrations",[141,191,209,223,245,259,273,291],{"title":142,"icon":143,"path":144,"stem":145,"children":146,"page":26},"Web frameworks","i-lucide-globe","\u002Fintegrations\u002Fweb","6.integrations\u002F1.web",[147,151,155,159,163,167,171,175,179,183,187],{"title":148,"path":149,"stem":150},"Web adapters overview","\u002Fintegrations\u002Fweb\u002Foverview","6.integrations\u002F1.web\u002F01.overview",{"title":152,"path":153,"stem":154},"vld-axum","\u002Fintegrations\u002Fweb\u002Faxum","6.integrations\u002F1.web\u002F02.axum",{"title":156,"path":157,"stem":158},"vld-actix","\u002Fintegrations\u002Fweb\u002Factix","6.integrations\u002F1.web\u002F03.actix",{"title":160,"path":161,"stem":162},"vld-ntex","\u002Fintegrations\u002Fweb\u002Fntex","6.integrations\u002F1.web\u002F04.ntex",{"title":164,"path":165,"stem":166},"vld-poem","\u002Fintegrations\u002Fweb\u002Fpoem","6.integrations\u002F1.web\u002F05.poem",{"title":168,"path":169,"stem":170},"vld-rama","\u002Fintegrations\u002Fweb\u002Frama","6.integrations\u002F1.web\u002F06.rama",{"title":172,"path":173,"stem":174},"vld-rocket","\u002Fintegrations\u002Fweb\u002Frocket","6.integrations\u002F1.web\u002F07.rocket",{"title":176,"path":177,"stem":178},"vld-salvo","\u002Fintegrations\u002Fweb\u002Fsalvo","6.integrations\u002F1.web\u002F08.salvo",{"title":180,"path":181,"stem":182},"vld-tower","\u002Fintegrations\u002Fweb\u002Ftower","6.integrations\u002F1.web\u002F09.tower",{"title":184,"path":185,"stem":186},"vld-warp","\u002Fintegrations\u002Fweb\u002Fwarp","6.integrations\u002F1.web\u002F10.warp",{"title":188,"path":189,"stem":190},"vld-tonic","\u002Fintegrations\u002Fweb\u002Ftonic","6.integrations\u002F1.web\u002F11.tonic",{"title":192,"icon":193,"path":194,"stem":195,"children":196,"page":26},"OpenAPI and JSON Schema","i-lucide-file-code","\u002Fintegrations\u002Fopenapi","6.integrations\u002F2.openapi",[197,201,205],{"title":198,"path":199,"stem":200},"vld-utoipa","\u002Fintegrations\u002Fopenapi\u002Futoipa","6.integrations\u002F2.openapi\u002F1.utoipa",{"title":202,"path":203,"stem":204},"vld-schemars","\u002Fintegrations\u002Fopenapi\u002Fschemars","6.integrations\u002F2.openapi\u002F2.schemars",{"title":206,"path":207,"stem":208},"vld-aide","\u002Fintegrations\u002Fopenapi\u002Faide","6.integrations\u002F2.openapi\u002F3.aide",{"title":210,"icon":211,"path":212,"stem":213,"children":214,"page":26},"Codegen and test data","i-lucide-wand","\u002Fintegrations\u002Fcodegen","6.integrations\u002F3.codegen",[215,219],{"title":216,"path":217,"stem":218},"vld-ts","\u002Fintegrations\u002Fcodegen\u002Fts","6.integrations\u002F3.codegen\u002F1.ts",{"title":220,"path":221,"stem":222},"vld-fake","\u002Fintegrations\u002Fcodegen\u002Ffake","6.integrations\u002F3.codegen\u002F2.fake",{"title":224,"icon":225,"path":226,"stem":227,"children":228,"page":26},"Databases","i-lucide-database","\u002Fintegrations\u002Fdatabase","6.integrations\u002F4.database",[229,233,237,241],{"title":230,"path":231,"stem":232},"vld-sqlx","\u002Fintegrations\u002Fdatabase\u002Fsqlx","6.integrations\u002F4.database\u002F1.sqlx",{"title":234,"path":235,"stem":236},"vld-diesel","\u002Fintegrations\u002Fdatabase\u002Fdiesel","6.integrations\u002F4.database\u002F2.diesel",{"title":238,"path":239,"stem":240},"vld-sea","\u002Fintegrations\u002Fdatabase\u002Fsea-orm","6.integrations\u002F4.database\u002F3.sea-orm",{"title":242,"path":243,"stem":244},"vld-surrealdb","\u002Fintegrations\u002Fdatabase\u002Fsurrealdb","6.integrations\u002F4.database\u002F4.surrealdb",{"title":246,"icon":247,"path":248,"stem":249,"children":250,"page":26},"Messaging","i-lucide-mail","\u002Fintegrations\u002Fmessaging","6.integrations\u002F5.messaging",[251,255],{"title":252,"path":253,"stem":254},"vld-redis","\u002Fintegrations\u002Fmessaging\u002Fredis","6.integrations\u002F5.messaging\u002F1.redis",{"title":256,"path":257,"stem":258},"vld-lapin","\u002Fintegrations\u002Fmessaging\u002Flapin","6.integrations\u002F5.messaging\u002F2.lapin",{"title":260,"icon":261,"path":262,"stem":263,"children":264,"page":26},"Config and CLI","i-lucide-terminal","\u002Fintegrations\u002Fconfig-cli","6.integrations\u002F6.config-cli",[265,269],{"title":266,"path":267,"stem":268},"vld-config","\u002Fintegrations\u002Fconfig-cli\u002Fconfig","6.integrations\u002F6.config-cli\u002F1.config",{"title":270,"path":271,"stem":272},"vld-clap","\u002Fintegrations\u002Fconfig-cli\u002Fclap","6.integrations\u002F6.config-cli\u002F2.clap",{"title":274,"icon":275,"path":276,"stem":277,"children":278,"page":26},"UI frameworks","i-lucide-monitor","\u002Fintegrations\u002Fui","6.integrations\u002F7.ui",[279,283,287],{"title":280,"path":281,"stem":282},"vld-dioxus","\u002Fintegrations\u002Fui\u002Fdioxus","6.integrations\u002F7.ui\u002F1.dioxus",{"title":284,"path":285,"stem":286},"vld-leptos","\u002Fintegrations\u002Fui\u002Fleptos","6.integrations\u002F7.ui\u002F2.leptos",{"title":288,"path":289,"stem":290},"vld-tauri","\u002Fintegrations\u002Fui\u002Ftauri","6.integrations\u002F7.ui\u002F3.tauri",{"title":292,"icon":293,"path":294,"stem":295,"children":296,"page":26},"Shared crates","i-lucide-package","\u002Fintegrations\u002Fshared","6.integrations\u002F8.shared",[297,301],{"title":298,"path":299,"stem":300},"vld-http-common","\u002Fintegrations\u002Fshared\u002Fhttp-common","6.integrations\u002F8.shared\u002F1.http-common",{"title":302,"path":303,"stem":304},"vld-integration-common","\u002Fintegrations\u002Fshared\u002Fintegration-common","6.integrations\u002F8.shared\u002F2.integration-common",{"title":306,"icon":307,"path":308,"stem":309,"children":310,"page":26},"Guides","i-lucide-book-open","\u002Fguides","7.guides",[311,315,319,323,327],{"title":312,"path":313,"stem":314},"Migration","\u002Fguides\u002Fmigration","7.guides\u002F1.migration",{"title":316,"path":317,"stem":318},"Security notes","\u002Fguides\u002Fsecurity","7.guides\u002F2.security",{"title":320,"path":321,"stem":322},"Performance","\u002Fguides\u002Fperformance","7.guides\u002F3.performance",{"title":324,"path":325,"stem":326},"Contributing","\u002Fguides\u002Fcontributing","7.guides\u002F4.contributing",{"title":328,"path":329,"stem":330},"FAQ","\u002Fguides\u002Ffaq","7.guides\u002F5.faq",{"title":332,"path":333,"stem":334},"Changelog","\u002Fchangelog","9.changelog",{"id":336,"title":15,"body":337,"description":1019,"extension":1020,"links":1021,"meta":1022,"navigation":867,"path":16,"seo":1023,"stem":17,"__hash__":1024},"docs\u002F1.getting-started\u002F2.installation.md",{"type":338,"value":339,"toc":1012},"minimark",[340,345,392,396,429,441,445,448,739,764,780,785,929,933,936,959,991,1008],[341,342,344],"h2",{"id":343},"add-the-crate","Add the crate",[346,347,353],"pre",{"className":348,"code":349,"filename":350,"language":351,"meta":352,"style":352},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[dependencies]\nvld = \"0.5\"\n","Cargo.toml","toml","",[354,355,356,372],"code",{"__ignoreMap":352},[357,358,361,365,369],"span",{"class":359,"line":360},"line",1,[357,362,364],{"class":363},"sMK4o","[",[357,366,368],{"class":367},"sBMFI","dependencies",[357,370,371],{"class":363},"]\n",[357,373,375,379,382,385,389],{"class":359,"line":374},2,[357,376,378],{"class":377},"sTEyZ","vld ",[357,380,381],{"class":363},"=",[357,383,384],{"class":363}," \"",[357,386,388],{"class":387},"sfazB","0.5",[357,390,391],{"class":363},"\"\n",[393,394,395],"p",{},"Or with cargo:",[346,397,401],{"className":398,"code":399,"language":400,"meta":352,"style":352},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cargo add vld\ncargo add vld --features derive,openapi\n","bash",[354,402,403,414],{"__ignoreMap":352},[357,404,405,408,411],{"class":359,"line":360},[357,406,407],{"class":367},"cargo",[357,409,410],{"class":387}," add",[357,412,413],{"class":387}," vld\n",[357,415,416,418,420,423,426],{"class":359,"line":374},[357,417,407],{"class":367},[357,419,410],{"class":387},[357,421,422],{"class":387}," vld",[357,424,425],{"class":387}," --features",[357,427,428],{"class":387}," derive,openapi\n",[393,430,431,432,436,437,440],{},"The minimum supported Rust version of the core crate is ",[433,434,435],"strong",{},"1.85"," with every feature. Integration crates may need more; see ",[438,439,23],"a",{"href":24},".",[341,442,444],{"id":443},"features","Features",[393,446,447],{},"No feature is enabled by default. Everything below is additive.",[449,450,451,467],"table",{},[452,453,454],"thead",{},[455,456,457,461,464],"tr",{},[458,459,460],"th",{},"Feature",[458,462,463],{},"Enables",[458,465,466],{},"Extra dependencies",[468,469,470,492,517,536,556,574,590,606,626,646,664,701],"tbody",{},[455,471,472,478,487],{},[473,474,475],"td",{},[354,476,477],{},"derive",[473,479,480,482,483,486],{},[354,481,84],{}," (",[438,484,485],{"href":85},"guide",")",[473,488,489],{},[354,490,491],{},"vld-derive",[455,493,494,499,514],{},[473,495,496],{},[354,497,498],{},"openapi",[473,500,501,504,505,508,509,482,512,486],{},[354,502,503],{},"JsonSchema"," trait, ",[354,506,507],{},"json_schema()",", ",[354,510,511],{},"to_openapi_document()",[438,513,485],{"href":129},[473,515,516],{},"none",[455,518,519,524,534],{},[473,520,521],{},[354,522,523],{},"diff",[473,525,526,529,530,482,532,486],{},[354,527,528],{},"vld::diff::diff_schemas"," for breaking-change detection; implies ",[354,531,498],{},[438,533,485],{"href":133},[473,535,516],{},[455,537,538,543,551],{},[473,539,540],{},[354,541,542],{},"regex",[473,544,545,508,548],{},[354,546,547],{},"vld::string().pattern(...)",[354,549,550],{},"vld::rules::Pattern",[473,552,553],{},[354,554,555],{},"regex-lite",[455,557,558,563,570],{},[473,559,560],{},[354,561,562],{},"chrono",[473,564,565,482,568,486],{},[354,566,567],{},"vld::chrono::{date, datetime, time}",[438,569,485],{"href":51},[473,571,572],{},[354,573,562],{},[455,575,576,581,586],{},[473,577,578],{},[354,579,580],{},"jiff",[473,582,583],{},[354,584,585],{},"vld::jiff::{date, datetime, time}",[473,587,588],{},[354,589,580],{},[455,591,592,597,602],{},[473,593,594],{},[354,595,596],{},"time",[473,598,599],{},[354,600,601],{},"vld::time::{date, datetime, time}",[473,603,604],{},[354,605,596],{},[455,607,608,613,621],{},[473,609,610],{},[354,611,612],{},"decimal",[473,614,615,482,618,486],{},[354,616,617],{},"vld::decimal()",[354,619,620],{},"rust_decimal::Decimal",[473,622,623],{},[354,624,625],{},"rust_decimal",[455,627,628,633,641],{},[473,629,630],{},[354,631,632],{},"net",[473,634,635,482,638,486],{},[354,636,637],{},"vld::ip_network()",[354,639,640],{},"ipnet::IpNet",[473,642,643],{},[354,644,645],{},"ipnet",[455,647,648,653,659],{},[473,649,650],{},[354,651,652],{},"file",[473,654,655,658],{},[354,656,657],{},"vld::file()"," with size, extension and media-type checks",[473,660,661],{},[354,662,663],{},"infer",[455,665,666,671,687],{},[473,667,668],{},[354,669,670],{},"file-advanced",[473,672,673,675,676,679,680,683,684],{},[354,674,652],{}," plus ",[354,677,678],{},"sha256()"," \u002F ",[354,681,682],{},"md5()",", image dimensions, ",[354,685,686],{},"require_exif()",[473,688,689,508,692,508,695,508,698],{},[354,690,691],{},"sha2",[354,693,694],{},"md-5",[354,696,697],{},"image",[354,699,700],{},"kamadak-exif",[455,702,703,708,725],{},[473,704,705],{},[354,706,707],{},"string-advanced",[473,709,710,508,713,508,716,508,719,508,722],{},[354,711,712],{},"url_strict()",[354,714,715],{},"uri()",[354,717,718],{},"uuid_v1\u002Fv4\u002Fv7()",[354,720,721],{},"phone_e164_strict()",[354,723,724],{},"semver_full()",[473,726,727,508,730,508,733,508,736],{},[354,728,729],{},"url",[354,731,732],{},"uuid",[354,734,735],{},"phonenumber",[354,737,738],{},"semver",[393,740,741,742,508,745,748,749,752,753,756,757,760,761,440],{},"The date features can be enabled together. ",[354,743,744],{},"vld::date()",[354,746,747],{},"vld::datetime()"," and ",[354,750,751],{},"vld::time_of_day()"," exist only when exactly ",[433,754,755],{},"one"," of them is on; with several, call the backend module (",[354,758,759],{},"vld::chrono::date()","). See ",[438,762,763],{"href":51},"Dates",[765,766,767],"note",{},[393,768,769,748,772,775,776,779],{},[354,770,771],{},"serialize",[354,773,774],{},"deserialize"," are deprecated no-ops kept for compatibility (serde support is always on). They will be removed in 0.6. The old ",[354,777,778],{},"std"," feature is gone.",[781,782,784],"h3",{"id":783},"typical-setups","Typical setups",[346,786,788],{"className":348,"code":787,"filename":350,"language":351,"meta":352,"style":352},"# Web API with OpenAPI docs and derive\nvld = { version = \"0.5\", features = [\"derive\", \"openapi\"] }\nvld-axum = \"0.5\"\n\n# Config validation with dates\nvld = { version = \"0.5\", features = [\"chrono\"] }\nvld-config = \"0.5\"   # config-rs; features = [\"figment\"] for figment\n",[354,789,790,796,848,862,869,875,912],{"__ignoreMap":352},[357,791,792],{"class":359,"line":360},[357,793,795],{"class":794},"sHwdD","# Web API with OpenAPI docs and derive\n",[357,797,798,800,802,805,808,810,812,814,817,820,823,825,828,830,832,834,836,838,840,842,845],{"class":359,"line":374},[357,799,378],{"class":377},[357,801,381],{"class":363},[357,803,804],{"class":363}," {",[357,806,807],{"class":377}," version ",[357,809,381],{"class":363},[357,811,384],{"class":363},[357,813,388],{"class":387},[357,815,816],{"class":363},"\"",[357,818,819],{"class":363},",",[357,821,822],{"class":377}," features ",[357,824,381],{"class":363},[357,826,827],{"class":363}," [",[357,829,816],{"class":363},[357,831,477],{"class":387},[357,833,816],{"class":363},[357,835,819],{"class":363},[357,837,384],{"class":363},[357,839,498],{"class":387},[357,841,816],{"class":363},[357,843,844],{"class":363},"]",[357,846,847],{"class":363}," }\n",[357,849,851,854,856,858,860],{"class":359,"line":850},3,[357,852,853],{"class":377},"vld-axum ",[357,855,381],{"class":363},[357,857,384],{"class":363},[357,859,388],{"class":387},[357,861,391],{"class":363},[357,863,865],{"class":359,"line":864},4,[357,866,868],{"emptyLinePlaceholder":867},true,"\n",[357,870,872],{"class":359,"line":871},5,[357,873,874],{"class":794},"# Config validation with dates\n",[357,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910],{"class":359,"line":877},6,[357,879,378],{"class":377},[357,881,381],{"class":363},[357,883,804],{"class":363},[357,885,807],{"class":377},[357,887,381],{"class":363},[357,889,384],{"class":363},[357,891,388],{"class":387},[357,893,816],{"class":363},[357,895,819],{"class":363},[357,897,822],{"class":377},[357,899,381],{"class":363},[357,901,827],{"class":363},[357,903,816],{"class":363},[357,905,562],{"class":387},[357,907,816],{"class":363},[357,909,844],{"class":363},[357,911,847],{"class":363},[357,913,915,918,920,922,924,926],{"class":359,"line":914},7,[357,916,917],{"class":377},"vld-config ",[357,919,381],{"class":363},[357,921,384],{"class":363},[357,923,388],{"class":387},[357,925,816],{"class":363},[357,927,928],{"class":794},"   # config-rs; features = [\"figment\"] for figment\n",[341,930,932],{"id":931},"prelude","Prelude",[393,934,935],{},"Most code needs a single import:",[346,937,941],{"className":938,"code":939,"language":940,"meta":352,"style":352},"language-rust shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","use vld::prelude::*;\n","rust",[354,942,943],{"__ignoreMap":352},[357,944,945,949,951,954,956],{"class":359,"line":360},[357,946,948],{"class":947},"sbssI","use",[357,950,422],{"class":367},[357,952,953],{"class":363},"::",[357,955,931],{"class":367},[357,957,958],{"class":363},"::*;\n",[393,960,961,962,508,965,748,968,971,972,508,975,508,978,508,981,984,985,987,988,990],{},"It brings in the ",[354,963,964],{},"VldSchema",[354,966,967],{},"VldParse",[354,969,970],{},"VldInput"," traits, the error types (",[354,973,974],{},"VldError",[354,976,977],{},"ValidationIssue",[354,979,980],{},"IssueCode",[354,982,983],{},"PathSegment","), the formatting helpers and every schema type. With ",[354,986,498],{}," it also exports the ",[354,989,503],{}," trait.",[393,992,993,994,508,997,508,1000,1003,1004,1007],{},"The schema constructors are free functions: ",[354,995,996],{},"vld::string()",[354,998,999],{},"vld::number()",[354,1001,1002],{},"vld::array(...)",". They are not in the prelude, so call them with the ",[354,1005,1006],{},"vld::"," prefix.",[1009,1010,1011],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":352,"searchDepth":374,"depth":850,"links":1013},[1014,1015,1018],{"id":343,"depth":374,"text":344},{"id":443,"depth":374,"text":444,"children":1016},[1017],{"id":783,"depth":850,"text":784},{"id":931,"depth":374,"text":932},"Add vld to Cargo.toml and pick the features you need.","md",null,{},{"title":15,"description":1019},"gVgMXrYfcE-BUdSyrU8sQyycvdUOY0w4-b76YYshO1g",[1026,1028],{"title":11,"path":12,"stem":13,"description":1027,"children":-1},"What vld is, what problem it solves and how it compares to Zod and serde.",{"title":19,"path":20,"stem":21,"description":1029,"children":-1},"Define a schema, parse JSON, handle errors and serve it over HTTP in a few minutes.",1794036358601]