[{"data":1,"prerenderedAt":851},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fmsrv":335,"\u002Fgetting-started\u002Fmsrv-surround":846},[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":23,"body":337,"description":839,"extension":840,"links":841,"meta":842,"navigation":843,"path":24,"seo":844,"stem":25,"__hash__":845},"docs\u002F1.getting-started\u002F9.msrv.md",{"type":338,"value":339,"toc":834},"minimark",[340,354,361,401,412,421,426,516,519,816,827,830],[341,342,343,344,348,349,353],"p",{},"Every crate's ",[345,346,347],"code",{},"rust-version"," is the Rust its ",[350,351,352],"strong",{},"default features"," need.\nSome optional features (mostly the newer major of a dual-major integration)\nneed more; they are listed below.",[341,355,356,357,360],{},"The numbers assume the MSRV-aware resolver picks your dependency versions:\nCargo 1.84+ does that by default for packages with ",[345,358,359],{},"resolver = \"3\""," \u002F\nedition 2024, otherwise set it once:",[362,363,368],"pre",{"className":364,"code":365,"language":366,"meta":367,"style":367},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback cargo update\n# or in .cargo\u002Fconfig.toml: [resolver] incompatible-rust-versions = \"fallback\"\n","sh","",[345,369,370,394],{"__ignoreMap":367},[371,372,375,379,383,387,391],"span",{"class":373,"line":374},"line",1,[371,376,378],{"class":377},"sTEyZ","CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS",[371,380,382],{"class":381},"sMK4o","=",[371,384,386],{"class":385},"sfazB","fallback",[371,388,390],{"class":389},"sBMFI"," cargo",[371,392,393],{"class":385}," update\n",[371,395,397],{"class":373,"line":396},2,[371,398,400],{"class":399},"sHwdD","# or in .cargo\u002Fconfig.toml: [resolver] incompatible-rust-versions = \"fallback\"\n",[341,402,403,404,407,408,411],{},"With newest-version resolution some dependencies need a newer compiler\n(for example ",[345,405,406],{},"image"," 0.25.10 needs 1.88, ",[345,409,410],{},"uuid"," 1.29 needs 1.89).",[341,413,414,417,418,420],{},[345,415,416],{},"just msrv"," (run before each release) checks every crate on its ",[345,419,347],{}," and\nruns the core test suite with every feature on 1.85; each check resolves a\nlockfile for that crate alone, as a downstream project would.",[422,423,425],"h2",{"id":424},"core","Core",[427,428,429,445],"table",{},[430,431,432],"thead",{},[433,434,435,439,442],"tr",{},[436,437,438],"th",{},"crate",[436,440,441],{},"features",[436,443,444],{},"Rust",[446,447,448,500],"tbody",{},[433,449,450,456,497],{},[451,452,453],"td",{},[345,454,455],{},"vld",[451,457,458,459,462,463,462,466,462,469,462,472,462,475,462,478,462,481,462,484,462,487,462,490,462,493,496],{},"default and every feature (",[345,460,461],{},"derive",", ",[345,464,465],{},"regex",[345,467,468],{},"openapi",[345,470,471],{},"diff",[345,473,474],{},"chrono",[345,476,477],{},"jiff",[345,479,480],{},"time",[345,482,483],{},"decimal",[345,485,486],{},"net",[345,488,489],{},"file",[345,491,492],{},"file-advanced",[345,494,495],{},"string-advanced",")",[451,498,499],{},"1.85",[433,501,502,511,514],{},[451,503,504,462,507,462,509],{},[345,505,506],{},"vld-derive",[345,508,298],{},[345,510,302],{},[451,512,513],{},"all",[451,515,499],{},[422,517,136],{"id":518},"integrations",[427,520,521,531],{},[430,522,523],{},[433,524,525,527,529],{},[436,526,438],{},[436,528,441],{},[436,530,444],{},[446,532,533,553,567,581,598,612,638,658,672,687,704,719,732,748,766,785,801],{},[433,534,535,549,551],{},[451,536,537,462,539,462,541,462,543,462,545,462,547],{},[345,538,156],{},[345,540,152],{},[345,542,164],{},[345,544,172],{},[345,546,180],{},[345,548,184],{},[451,550,513],{},[451,552,499],{},[433,554,555,559,562],{},[451,556,557],{},[345,558,176],{},[451,560,561],{},"all (Salvo 1.x)",[451,563,564],{},[350,565,566],{},"1.94",[433,568,569,573,576],{},[451,570,571],{},[345,572,168],{},[451,574,575],{},"all (Rama 0.4)",[451,577,578],{},[350,579,580],{},"1.96",[433,582,583,587,593],{},[451,584,585],{},[345,586,160],{},[451,588,589,592],{},[345,590,591],{},"ntex-4"," (default)",[451,594,595],{},[350,596,597],{},"1.97",[433,599,600,604,609],{},[451,601,602],{},[345,603,160],{},[451,605,606],{},[345,607,608],{},"ntex-3",[451,610,611],{},"1.88 ¹",[433,613,614,634,636],{},[451,615,616,462,618,462,620,462,622,462,624,462,626,462,628,462,630,462,632],{},[345,617,188],{},[345,619,270],{},[345,621,266],{},[345,623,216],{},[345,625,220],{},[345,627,288],{},[345,629,284],{},[345,631,280],{},[345,633,242],{},[451,635,513],{},[451,637,499],{},[433,639,640,644,656],{},[451,641,642],{},[345,643,234],{},[451,645,646,649,650,462,653],{},[345,647,648],{},"sqlite"," (default), ",[345,651,652],{},"postgres",[345,654,655],{},"mysql",[451,657,499],{},[433,659,660,664,670],{},[451,661,662],{},[345,663,230],{},[451,665,666,669],{},[345,667,668],{},"sqlx-0_8"," (default) + any backend",[451,671,499],{},[433,673,674,678,683],{},[451,675,676],{},[345,677,230],{},[451,679,680],{},[345,681,682],{},"sqlx-0_9",[451,684,685],{},[350,686,566],{},[433,688,689,693,702],{},[451,690,691],{},[345,692,238],{},[451,694,695,698,699],{},[345,696,697],{},"sea-orm-1"," (default) + any ",[345,700,701],{},"with-*",[451,703,499],{},[433,705,706,710,715],{},[451,707,708],{},[345,709,238],{},[451,711,712],{},[345,713,714],{},"sea-orm-2",[451,716,717],{},[350,718,566],{},[433,720,721,725,730],{},[451,722,723],{},[345,724,198],{},[451,726,727,592],{},[345,728,729],{},"utoipa-5",[451,731,499],{},[433,733,734,738,743],{},[451,735,736],{},[345,737,198],{},[451,739,740],{},[345,741,742],{},"utoipa-6",[451,744,745],{},[350,746,747],{},"1.88",[433,749,750,756,764],{},[451,751,752,462,754],{},[345,753,202],{},[345,755,206],{},[451,757,758,649,761],{},[345,759,760],{},"schemars-0",[345,762,763],{},"schemars-1",[451,765,499],{},[433,767,768,772,783],{},[451,769,770],{},[345,771,252],{},[451,773,774,649,777,462,780],{},[345,775,776],{},"redis-0",[345,778,779],{},"redis-1",[345,781,782],{},"aio",[451,784,499],{},[433,786,787,791,799],{},[451,788,789],{},[345,790,256],{},[451,792,793,649,796],{},[345,794,795],{},"lapin-2",[345,797,798],{},"lapin-3",[451,800,499],{},[433,802,803,807,812],{},[451,804,805],{},[345,806,256],{},[451,808,809],{},[345,810,811],{},"lapin-4",[451,813,814],{},[350,815,747],{},[341,817,818,819,822,823,826],{},"¹ The crate declares 1.97 (its default, ntex 4), so Cargo refuses older\ncompilers; with ",[345,820,821],{},"default-features = false, features = [\"ntex-3\"]"," it builds\non 1.88 when you pass ",[345,824,825],{},"--ignore-rust-version",".",[341,828,829],{},"The workspace floor is 1.85 (edition 2021 crates, tested in CI); several\ncrates' own dependency trees would go lower, but that is not tested.",[831,832,833],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .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);}",{"title":367,"searchDepth":396,"depth":835,"links":836},3,[837,838],{"id":424,"depth":396,"text":425},{"id":518,"depth":396,"text":136},"Minimum supported Rust version of every crate and feature.","md",null,{},true,{"title":23,"description":839},"vVlfxm123UFLWcuRGNVyXKihn9MUiZvvscHh5nspjY8",[847,849],{"title":19,"path":20,"stem":21,"description":848,"children":-1},"Define a schema, parse JSON, handle errors and serve it over HTTP in a few minutes.",{"title":34,"path":35,"stem":36,"description":850,"children":-1},"vld::string() — length, patterns, transforms, coercion and more than 40 built-in formats.",1794036358601]