[{"data":1,"prerenderedAt":1314},["ShallowReactive",2],{"navigation_docs":3,"-benchmarks-hello-world":195,"-benchmarks-hello-world-surround":1309},[4,27,61,75,100,126,147,177],{"title":5,"icon":6,"redirect":7,"path":8,"stem":9,"children":10,"page":26},"Introduction","icon-park-outline:home","\u002Fintroduction\u002Fabout-mion","\u002Fintroduction","1.introduction",[11,14,18,22],{"title":12,"path":7,"stem":13},"About mion","1.introduction\u002F1.about-mion",{"title":15,"path":16,"stem":17},"Quick Start","\u002Fintroduction\u002Fquick-start","1.introduction\u002F2.quick-start",{"title":19,"path":20,"stem":21},"Manual Install","\u002Fintroduction\u002Fmanual-install","1.introduction\u002F3.manual-install",{"title":23,"path":24,"stem":25},"What's Next","\u002Fintroduction\u002Fwhat-is-next","1.introduction\u002F4.what-is-next",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Server","icon-park-outline:server","\u002Fserver","20.server",[33,37,41,45,49,53,57],{"title":34,"path":35,"stem":36},"Router Overview","\u002Fserver\u002Foverview","20.server\u002F0.overview",{"title":38,"path":39,"stem":40},"Routes","\u002Fserver\u002Froutes","20.server\u002F1.routes",{"title":42,"path":43,"stem":44},"Middleware","\u002Fserver\u002Fmiddle-fns","20.server\u002F2.middle-fns",{"title":46,"path":47,"stem":48},"Request & Response","\u002Fserver\u002Frequest-and-response","20.server\u002F5.request-and-response",{"title":50,"path":51,"stem":52},"Error Handling","\u002Fserver\u002Ferror-handling","20.server\u002F6.error-handling",{"title":54,"path":55,"stem":56},"Validation","\u002Fserver\u002Fvalidation","20.server\u002F7.validation",{"title":58,"path":59,"stem":60},"Serialization","\u002Fserver\u002Fserialization","20.server\u002F8.serialization",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":26},"Drizzle ORM","i-lineicons-drizzle","\u002Fdrizzle-orm","21.drizzle-orm",[67,71],{"title":68,"path":69,"stem":70},"Drizzle Overview","\u002Fdrizzle-orm\u002Fdrizzle-overview","21.drizzle-orm\u002F0.drizzle-overview",{"title":72,"path":73,"stem":74},"Column Mapping","\u002Fdrizzle-orm\u002Fcolumn-mapping","21.drizzle-orm\u002F1.column-mapping",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":26},"Client","icon-park-outline:computer","\u002Fclient","3.client",[81,85,88,92,96],{"title":82,"path":83,"stem":84},"Client Overview","\u002Fclient\u002Fclient-overview","3.client\u002F0.client-overview",{"title":50,"path":86,"stem":87},"\u002Fclient\u002Ferror-handling","3.client\u002F1.error-handling",{"title":89,"path":90,"stem":91},"Validation Errors","\u002Fclient\u002Fvalidation-errors","3.client\u002F2.validation-errors",{"title":93,"path":94,"stem":95},"Routes Flow","\u002Fclient\u002Fclient-flow","3.client\u002F3.client-flow",{"title":97,"path":98,"stem":99},"Cancellation & Timeouts","\u002Fclient\u002Fcancellation-timeouts","3.client\u002F4.cancellation-timeouts",{"title":101,"icon":102,"redirect":103,"path":104,"stem":105,"children":106,"page":26},"RunTypes","i-lucide-scan-text","\u002Frun-types\u002Foverview","\u002Frun-types","4.run-types",[107,110,114,118,122],{"title":108,"path":103,"stem":109},"RunTypes Overview","4.run-types\u002F0.overview",{"title":111,"path":112,"stem":113},"Supported Types","\u002Frun-types\u002Ffeatures","4.run-types\u002F1.features",{"title":115,"path":116,"stem":117},"Type Formats","\u002Frun-types\u002Ftype-formats","4.run-types\u002F2.type-formats",{"title":119,"path":120,"stem":121},"Built-in Formats","\u002Frun-types\u002Fbuilt-in-formats","4.run-types\u002F3.built-in-formats",{"title":123,"path":124,"stem":125},"Caveats","\u002Frun-types\u002Fcaveats","4.run-types\u002F4.caveats",{"title":127,"path":128,"stem":129,"children":130,"page":26},"Devtools","\u002Fdevtools","5.devtools",[131,135,139,143],{"title":132,"path":133,"stem":134},"AOT Compilation","\u002Fdevtools\u002Faot-compilation","5.devtools\u002F0.aot-compilation",{"title":136,"path":137,"stem":138},"Pure Functions","\u002Fdevtools\u002Fpure-functions","5.devtools\u002F1.pure-functions",{"title":140,"path":141,"stem":142},"ESLint Rules","\u002Fdevtools\u002Feslint-rules","5.devtools\u002F2.eslint-rules",{"title":144,"path":145,"stem":146},"Vite Configuration","\u002Fdevtools\u002Fvite-config","5.devtools\u002F3.vite-config",{"title":148,"redirect":149,"icon":150,"path":151,"stem":152,"children":153,"page":26},"Platforms","\u002Fplatforms\u002Fnode-js","icon-park-outline:play","\u002Fplatforms","6.platforms",[154,157,161,165,169,173],{"title":155,"path":149,"stem":156},"Node.js","6.platforms\u002F1.node-js",{"title":158,"path":159,"stem":160},"Bun","\u002Fplatforms\u002Fbun","6.platforms\u002F2.bun",{"title":162,"path":163,"stem":164},"AWS Lambda","\u002Fplatforms\u002Faws-lambda","6.platforms\u002F3.aws-lambda",{"title":166,"path":167,"stem":168},"Google Cloud Functions","\u002Fplatforms\u002Fgoogle-cloud-functions","6.platforms\u002F4.google-cloud-functions",{"title":170,"path":171,"stem":172},"Cloudflare Workers","\u002Fplatforms\u002Fcloudflare","6.platforms\u002F5.cloudflare",{"title":174,"path":175,"stem":176},"Vercel","\u002Fplatforms\u002Fvercel","6.platforms\u002F6.vercel",{"title":178,"icon":179,"redirect":180,"path":181,"stem":182,"children":183,"page":26},"Benchmarks","icon-park-outline:chart-line","\u002Fbenchmarks\u002Fhello-world","\u002Fbenchmarks","7.benchmarks",[184,187,191],{"title":185,"path":180,"stem":186},"Hello World","7.benchmarks\u002F1.hello-world",{"title":188,"path":189,"stem":190},"Light Validation","\u002Fbenchmarks\u002Flight-validation","7.benchmarks\u002F2.light-validation",{"title":192,"path":193,"stem":194},"Heavy Validation","\u002Fbenchmarks\u002Fheavy-validation","7.benchmarks\u002F3.heavy-validation",{"id":196,"title":185,"body":197,"description":1303,"extension":1304,"links":1305,"meta":1306,"navigation":331,"path":180,"seo":1307,"stem":186,"__hash__":1308},"docs\u002F7.benchmarks\u002F1.hello-world.md",{"type":198,"value":199},"minimark",[200,213,216,223,228,231,864,867,870,904,909,913,917,920,924,927,931,934,938,941,945,1293,1299],[201,202,203,204,212],"p",{},"These benchmarks are based on the ",[205,206,211],"a",{"href":207,"rel":208,"target":210},"https:\u002F\u002Fgithub.com\u002Ffastify\u002Fbenchmarks",[209],"nofollow","_blank","fastify benchmarks"," repo! in fact our goal is to perform similar to fastify as we considered it the industry standard in terms of performance.",[201,214,215],{},"mion is focused on being lightweight and fast so it can be run in serverless environments. We run the benchmarks before every PR gets merged to ensure there is no performance regression.",[217,218,219,222],"tip",{},[220,221,185],"strong",{}," benchmark involves mostly routing as there is no validation and is about as fast as each framework can get.",[224,225,227],"h2",{"id":226},"what-is-tested","What is tested?",[201,229,230],{},"This is a simple hello world scenario, is a good indicator of the router performance and theoretical upper limit of each framework.",[232,233,238],"pre",{"className":234,"code":235,"language":236,"meta":237,"style":237},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {HeadersSubset, RpcError} from '@mionjs\u002Fcore';\nimport {RouterOptions, initMionRouter, headersFn, middleFn, route} from '@mionjs\u002Frouter';\n\nexport type User = {id: string; name: string; surname: string};\n\n\u002F\u002F set options and init router\nexport const routerOptions: Partial\u003CRouterOptions> = {prefix: 'api\u002Fv1'};\nexport const myApi = await initMionRouter(\n    \u002F\u002F all function parameters will be automatically validated before the function is called\n    {\n        auth: headersFn((ctx, h: HeadersSubset\u003C'Authorization'>): void | RpcError\u003C'not-authorized'> => {\n            const token = h.headers.Authorization;\n            if (!token) return new RpcError\u003C'not-authorized'>({publicMessage: 'Not Authorized', type: 'not-authorized'});\n        }),\n        users: {\n            sayHello: route((ctx, user: User): string => `Hello ${user.name} ${user.surname}`),\n        },\n        log: middleFn((ctx): void => console.log(Date.now(), ctx.path, ctx.response.statusCode), {runOnError: true}),\n    },\n    routerOptions\n);\n\n\u002F\u002F Export the type of the Api (used by the client)\nexport type MyApi = typeof myApi;\n","ts","",[239,240,241,283,326,333,384,389,396,438,460,466,472,538,563,635,646,656,724,730,814,820,826,833,838,844],"code",{"__ignoreMap":237},[242,243,246,250,254,258,261,264,267,270,273,277,280],"span",{"class":244,"line":245},"line",1,[242,247,249],{"class":248},"s7zQu","import",[242,251,253],{"class":252},"sMK4o"," {",[242,255,257],{"class":256},"sTEyZ","HeadersSubset",[242,259,260],{"class":252},",",[242,262,263],{"class":256}," RpcError",[242,265,266],{"class":252},"}",[242,268,269],{"class":248}," from",[242,271,272],{"class":252}," '",[242,274,276],{"class":275},"sfazB","@mionjs\u002Fcore",[242,278,279],{"class":252},"'",[242,281,282],{"class":252},";\n",[242,284,286,288,290,293,295,298,300,303,305,308,310,313,315,317,319,322,324],{"class":244,"line":285},2,[242,287,249],{"class":248},[242,289,253],{"class":252},[242,291,292],{"class":256},"RouterOptions",[242,294,260],{"class":252},[242,296,297],{"class":256}," initMionRouter",[242,299,260],{"class":252},[242,301,302],{"class":256}," headersFn",[242,304,260],{"class":252},[242,306,307],{"class":256}," middleFn",[242,309,260],{"class":252},[242,311,312],{"class":256}," route",[242,314,266],{"class":252},[242,316,269],{"class":248},[242,318,272],{"class":252},[242,320,321],{"class":275},"@mionjs\u002Frouter",[242,323,279],{"class":252},[242,325,282],{"class":252},[242,327,329],{"class":244,"line":328},3,[242,330,332],{"emptyLinePlaceholder":331},true,"\n",[242,334,336,339,343,347,350,352,356,359,362,365,368,370,372,374,377,379,381],{"class":244,"line":335},4,[242,337,338],{"class":248},"export",[242,340,342],{"class":341},"spNyl"," type",[242,344,346],{"class":345},"sBMFI"," User",[242,348,349],{"class":252}," =",[242,351,253],{"class":252},[242,353,355],{"class":354},"swJcz","id",[242,357,358],{"class":252},":",[242,360,361],{"class":345}," string",[242,363,364],{"class":252},";",[242,366,367],{"class":354}," name",[242,369,358],{"class":252},[242,371,361],{"class":345},[242,373,364],{"class":252},[242,375,376],{"class":354}," surname",[242,378,358],{"class":252},[242,380,361],{"class":345},[242,382,383],{"class":252},"};\n",[242,385,387],{"class":244,"line":386},5,[242,388,332],{"emptyLinePlaceholder":331},[242,390,392],{"class":244,"line":391},6,[242,393,395],{"class":394},"sHwdD","\u002F\u002F set options and init router\n",[242,397,399,401,404,407,409,412,415,417,420,422,424,427,429,431,434,436],{"class":244,"line":398},7,[242,400,338],{"class":248},[242,402,403],{"class":341}," const",[242,405,406],{"class":256}," routerOptions",[242,408,358],{"class":252},[242,410,411],{"class":345}," Partial",[242,413,414],{"class":252},"\u003C",[242,416,292],{"class":345},[242,418,419],{"class":252},">",[242,421,349],{"class":252},[242,423,253],{"class":252},[242,425,426],{"class":354},"prefix",[242,428,358],{"class":252},[242,430,272],{"class":252},[242,432,433],{"class":275},"api\u002Fv1",[242,435,279],{"class":252},[242,437,383],{"class":252},[242,439,441,443,445,448,451,454,457],{"class":244,"line":440},8,[242,442,338],{"class":248},[242,444,403],{"class":341},[242,446,447],{"class":256}," myApi ",[242,449,450],{"class":252},"=",[242,452,453],{"class":248}," await",[242,455,297],{"class":456},"s2Zo4",[242,458,459],{"class":256},"(\n",[242,461,463],{"class":244,"line":462},9,[242,464,465],{"class":394},"    \u002F\u002F all function parameters will be automatically validated before the function is called\n",[242,467,469],{"class":244,"line":468},10,[242,470,471],{"class":252},"    {\n",[242,473,475,478,480,482,485,487,491,493,496,498,501,503,505,508,510,513,516,519,521,523,525,528,530,532,535],{"class":244,"line":474},11,[242,476,477],{"class":354},"        auth",[242,479,358],{"class":252},[242,481,302],{"class":456},[242,483,484],{"class":256},"(",[242,486,484],{"class":252},[242,488,490],{"class":489},"sHdIc","ctx",[242,492,260],{"class":252},[242,494,495],{"class":489}," h",[242,497,358],{"class":252},[242,499,500],{"class":345}," HeadersSubset",[242,502,414],{"class":252},[242,504,279],{"class":252},[242,506,507],{"class":275},"Authorization",[242,509,279],{"class":252},[242,511,512],{"class":252},">):",[242,514,515],{"class":345}," void",[242,517,518],{"class":252}," |",[242,520,263],{"class":345},[242,522,414],{"class":252},[242,524,279],{"class":252},[242,526,527],{"class":275},"not-authorized",[242,529,279],{"class":252},[242,531,419],{"class":252},[242,533,534],{"class":341}," =>",[242,536,537],{"class":252}," {\n",[242,539,541,544,547,549,551,554,557,559,561],{"class":244,"line":540},12,[242,542,543],{"class":341},"            const",[242,545,546],{"class":256}," token",[242,548,349],{"class":252},[242,550,495],{"class":256},[242,552,553],{"class":252},".",[242,555,556],{"class":256},"headers",[242,558,553],{"class":252},[242,560,507],{"class":256},[242,562,282],{"class":252},[242,564,566,569,572,575,578,581,584,587,589,591,593,595,597,599,601,604,607,609,611,614,616,618,620,622,624,626,628,630,633],{"class":244,"line":565},13,[242,567,568],{"class":248},"            if",[242,570,571],{"class":354}," (",[242,573,574],{"class":252},"!",[242,576,577],{"class":256},"token",[242,579,580],{"class":354},") ",[242,582,583],{"class":248},"return",[242,585,586],{"class":252}," new",[242,588,263],{"class":456},[242,590,414],{"class":252},[242,592,279],{"class":252},[242,594,527],{"class":275},[242,596,279],{"class":252},[242,598,419],{"class":252},[242,600,484],{"class":354},[242,602,603],{"class":252},"{",[242,605,606],{"class":354},"publicMessage",[242,608,358],{"class":252},[242,610,272],{"class":252},[242,612,613],{"class":275},"Not Authorized",[242,615,279],{"class":252},[242,617,260],{"class":252},[242,619,342],{"class":354},[242,621,358],{"class":252},[242,623,272],{"class":252},[242,625,527],{"class":275},[242,627,279],{"class":252},[242,629,266],{"class":252},[242,631,632],{"class":354},")",[242,634,282],{"class":252},[242,636,638,641,643],{"class":244,"line":637},14,[242,639,640],{"class":252},"        }",[242,642,632],{"class":256},[242,644,645],{"class":252},",\n",[242,647,649,652,654],{"class":244,"line":648},15,[242,650,651],{"class":354},"        users",[242,653,358],{"class":252},[242,655,537],{"class":252},[242,657,659,662,664,666,668,670,672,674,677,679,681,684,686,688,691,694,697,700,702,705,707,710,712,714,717,720,722],{"class":244,"line":658},16,[242,660,661],{"class":354},"            sayHello",[242,663,358],{"class":252},[242,665,312],{"class":456},[242,667,484],{"class":256},[242,669,484],{"class":252},[242,671,490],{"class":489},[242,673,260],{"class":252},[242,675,676],{"class":489}," user",[242,678,358],{"class":252},[242,680,346],{"class":345},[242,682,683],{"class":252},"):",[242,685,361],{"class":345},[242,687,534],{"class":341},[242,689,690],{"class":252}," `",[242,692,693],{"class":275},"Hello ",[242,695,696],{"class":252},"${",[242,698,699],{"class":256},"user",[242,701,553],{"class":252},[242,703,704],{"class":256},"name",[242,706,266],{"class":252},[242,708,709],{"class":252}," ${",[242,711,699],{"class":256},[242,713,553],{"class":252},[242,715,716],{"class":256},"surname",[242,718,719],{"class":252},"}`",[242,721,632],{"class":256},[242,723,645],{"class":252},[242,725,727],{"class":244,"line":726},17,[242,728,729],{"class":252},"        },\n",[242,731,733,736,738,740,742,744,746,748,750,752,755,757,760,763,765,768,771,773,776,778,781,783,785,787,790,792,795,797,799,802,804,808,810,812],{"class":244,"line":732},18,[242,734,735],{"class":354},"        log",[242,737,358],{"class":252},[242,739,307],{"class":456},[242,741,484],{"class":256},[242,743,484],{"class":252},[242,745,490],{"class":489},[242,747,683],{"class":252},[242,749,515],{"class":345},[242,751,534],{"class":341},[242,753,754],{"class":256}," console",[242,756,553],{"class":252},[242,758,759],{"class":456},"log",[242,761,762],{"class":256},"(Date",[242,764,553],{"class":252},[242,766,767],{"class":456},"now",[242,769,770],{"class":256},"()",[242,772,260],{"class":252},[242,774,775],{"class":256}," ctx",[242,777,553],{"class":252},[242,779,780],{"class":256},"path",[242,782,260],{"class":252},[242,784,775],{"class":256},[242,786,553],{"class":252},[242,788,789],{"class":256},"response",[242,791,553],{"class":252},[242,793,794],{"class":256},"statusCode)",[242,796,260],{"class":252},[242,798,253],{"class":252},[242,800,801],{"class":354},"runOnError",[242,803,358],{"class":252},[242,805,807],{"class":806},"sfNiH"," true",[242,809,266],{"class":252},[242,811,632],{"class":256},[242,813,645],{"class":252},[242,815,817],{"class":244,"line":816},19,[242,818,819],{"class":252},"    },\n",[242,821,823],{"class":244,"line":822},20,[242,824,825],{"class":256},"    routerOptions\n",[242,827,829,831],{"class":244,"line":828},21,[242,830,632],{"class":256},[242,832,282],{"class":252},[242,834,836],{"class":244,"line":835},22,[242,837,332],{"emptyLinePlaceholder":331},[242,839,841],{"class":244,"line":840},23,[242,842,843],{"class":394},"\u002F\u002F Export the type of the Api (used by the client)\n",[242,845,847,849,851,854,856,859,862],{"class":244,"line":846},24,[242,848,338],{"class":248},[242,850,342],{"class":341},[242,852,853],{"class":345}," MyApi",[242,855,349],{"class":252},[242,857,858],{"class":252}," typeof",[242,860,861],{"class":256}," myApi",[242,863,282],{"class":252},[865,866],"spacer",{},[224,868,178],{"id":869},"benchmarks",[871,872,873,880,889,895],"ul",{},[874,875,876,879],"li",{},[220,877,878],{},"Machine:"," darwin arm64 | 12 vCPUs | 16.0GB Mem",[874,881,882,885,886],{},[220,883,884],{},"Node:"," ",[239,887,888],{},"v24.13.0",[874,890,891,894],{},[220,892,893],{},"Run:"," Wed Apr 15 2026 22:04:55 GMT+0100 (Irish Standard Time)",[874,896,897,885,900,903],{},[220,898,899],{},"Method:",[239,901,902],{},"autocannon -c 100 -d 20.099952 -p 1 localhost:3000"," (two rounds; one to warm-up, one to measure)",[905,906,908],"h4",{"id":907},"req-rs","Req (R\u002Fs)",[910,911],"bench-chart",{"id":912},"hello-requests",[905,914,916],{"id":915},"throughput-mbs","Throughput (Mb\u002Fs)",[910,918],{"id":919},"hello-throughput",[905,921,923],{"id":922},"latency-ms","Latency (ms)",[910,925],{"id":926},"hello-latency",[905,928,930],{"id":929},"max-memory-mb","Max Memory (Mb)",[910,932],{"id":933},"hello-max-mem",[905,935,937],{"id":936},"memory-series-mb","Memory Series (MB)",[910,939],{"id":940},"hello-mem-series",[224,942,944],{"id":943},"results-table","Results Table",[946,947,948,983],"table",{},[949,950,951],"thead",{},[952,953,954,958,962,965,968,970,973,975,978,980],"tr",{},[955,956],"th",{"align":957},"left",[955,959,961],{"align":960},"right","Version",[955,963,964],{"align":960},"Router",[955,966,908],{"align":967},"center",[955,969,923],{"align":960},[955,971,972],{"align":960},"Output (Mb\u002Fs)",[955,974,930],{"align":960},[955,976,977],{"align":960},"Max Cpu (%)",[955,979,54],{"align":967},[955,981,982],{"align":957},"Description",[984,985,986,1018,1047,1096,1127,1175,1203,1233,1263],"tbody",{},[952,987,988,992,995,998,1001,1004,1007,1010,1013,1015],{},[989,990,991],"td",{"align":957},"elysia.bun",[989,993,994],{"align":960},"1.0.0",[989,996,997],{"align":960},"✓",[989,999,1000],{"align":967},"124499.5",[989,1002,1003],{"align":960},"0.77",[989,1005,1006],{"align":960},"14.84",[989,1008,1009],{"align":960},"55",[989,1011,1012],{"align":960},"109",[989,1014,997],{"align":967},[989,1016,1017],{"align":957},"Elysia framework with TypeBox validation",[952,1019,1020,1023,1026,1028,1031,1034,1037,1040,1042,1044],{},[989,1021,1022],{"align":957},"hono.bun",[989,1024,1025],{"align":960},"3.12.6",[989,1027,997],{"align":960},[989,1029,1030],{"align":967},"110404.7",[989,1032,1033],{"align":960},"0.87",[989,1035,1036],{"align":960},"13.16",[989,1038,1039],{"align":960},"67",[989,1041,1012],{"align":960},[989,1043,997],{"align":967},[989,1045,1046],{"align":957},"hono bun server with Zod validation",[952,1048,1049,1054,1059,1063,1068,1073,1078,1083,1087,1091],{},[989,1050,1051],{"align":957},[220,1052,1053],{},"mion.bun",[989,1055,1056],{"align":960},[220,1057,1058],{},"0.6.2",[989,1060,1061],{"align":960},[220,1062,997],{},[989,1064,1065],{"align":967},[220,1066,1067],{},"101825.0",[989,1069,1070],{"align":960},[220,1071,1072],{},"0.94",[989,1074,1075],{"align":960},[220,1076,1077],{},"15.25",[989,1079,1080],{"align":960},[220,1081,1082],{},"60",[989,1084,1085],{"align":960},[220,1086,1012],{},[989,1088,1089],{"align":967},[220,1090,997],{},[989,1092,1093],{"align":957},[220,1094,1095],{},"mion using bun, automatic validation and serialization",[952,1097,1098,1101,1104,1107,1110,1113,1116,1119,1122,1124],{},[989,1099,1100],{"align":957},"http-node",[989,1102,1103],{"align":960},"16.18.0",[989,1105,1106],{"align":960},"✗",[989,1108,1109],{"align":967},"84535.9",[989,1111,1112],{"align":960},"1.14",[989,1114,1115],{"align":960},"15.08",[989,1117,1118],{"align":960},"133",[989,1120,1121],{"align":960},"114",[989,1123,997],{"align":967},[989,1125,1126],{"align":957},"bare node http server with Zod validation",[952,1128,1129,1134,1138,1142,1147,1152,1157,1162,1166,1170],{},[989,1130,1131],{"align":957},[220,1132,1133],{},"mion",[989,1135,1136],{"align":960},[220,1137,1058],{},[989,1139,1140],{"align":960},[220,1141,997],{},[989,1143,1144],{"align":967},[220,1145,1146],{},"73443.0",[989,1148,1149],{"align":960},[220,1150,1151],{},"1.32",[989,1153,1154],{"align":960},[220,1155,1156],{},"14.29",[989,1158,1159],{"align":960},[220,1160,1161],{},"139",[989,1163,1164],{"align":960},[220,1165,1121],{},[989,1167,1168],{"align":967},[220,1169,997],{},[989,1171,1172],{"align":957},[220,1173,1174],{},"Automatic validation and serialization out of the box",[952,1176,1177,1180,1182,1184,1187,1190,1193,1196,1198,1200],{},[989,1178,1179],{"align":957},"hono",[989,1181,1025],{"align":960},[989,1183,997],{"align":960},[989,1185,1186],{"align":967},"73011.9",[989,1188,1189],{"align":960},"1.33",[989,1191,1192],{"align":960},"11.98",[989,1194,1195],{"align":960},"145",[989,1197,1121],{"align":960},[989,1199,997],{"align":967},[989,1201,1202],{"align":957},"hono node server with Zod validation",[952,1204,1205,1208,1211,1213,1216,1219,1222,1225,1228,1230],{},[989,1206,1207],{"align":957},"fastify",[989,1209,1210],{"align":960},"5.7.4",[989,1212,997],{"align":960},[989,1214,1215],{"align":967},"59551.2",[989,1217,1218],{"align":960},"1.63",[989,1220,1221],{"align":960},"10.68",[989,1223,1224],{"align":960},"144",[989,1226,1227],{"align":960},"104",[989,1229,997],{"align":967},[989,1231,1232],{"align":957},"Fastify with native JSON Schema validation",[952,1234,1235,1238,1241,1243,1246,1249,1252,1255,1258,1260],{},[989,1236,1237],{"align":957},"hapi",[989,1239,1240],{"align":960},"21.4.4",[989,1242,997],{"align":960},[989,1244,1245],{"align":967},"58388.5",[989,1247,1248],{"align":960},"1.66",[989,1250,1251],{"align":960},"10.41",[989,1253,1254],{"align":960},"219",[989,1256,1257],{"align":960},"108",[989,1259,997],{"align":967},[989,1261,1262],{"align":957},"Hapi with Zod validation",[952,1264,1265,1268,1271,1273,1276,1279,1282,1285,1288,1290],{},[989,1266,1267],{"align":957},"express",[989,1269,1270],{"align":960},"5.2.1",[989,1272,997],{"align":960},[989,1274,1275],{"align":967},"56729.9",[989,1277,1278],{"align":960},"1.71",[989,1280,1281],{"align":960},"10.12",[989,1283,1284],{"align":960},"151",[989,1286,1287],{"align":960},"106",[989,1289,997],{"align":967},[989,1291,1292],{"align":957},"Express with Zod validation",[1294,1295,1298],"button-link",{"href":1296,"icon":1297,"target":210},"https:\u002F\u002Fgithub.com\u002FMionKit\u002FBenchmarks","grommet-icons:github","Benchmarks Repo",[1300,1301,1302],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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);}","Performance benchmarks for a simple Hello World endpoint.","md",null,{"toc":26},{"title":185,"description":1303},"UkYl1nrUJAAUX5wlclu3Kr7XVg4HT7qXykJ6RdmvcAE",[1310,1312],{"title":174,"path":175,"stem":176,"description":1311,"children":-1},"Running mion APIs on Vercel using Next.js App Router route handlers.",{"title":188,"path":189,"stem":190,"description":1313,"children":-1},"Performance benchmarks for an Update Simple User endpoint with Lightweight validation and serialization.",1778674529771]